Tag: nsurlsession

Swift中这些NSURLSession方法的委托是什么?

XCode不是自动完成这个方法,我没有设置委托 NSURLSessionTaskDelegate , NSURLSessionDelegate,NSURLSessionDownloadDelegate 但它仍然没有完成,所以我觉得我设置了错误的委托,原因多数民众赞成什么时,我设置了错误的代表 URLSession(_:downloadTask:didResumeAtOffset:expectedTotalBytes:) URLSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:) URLSession(_:downloadTask:didFinishDownloadingToURL:) 那么这个时候什么错误呢?

NSURLSession使用绑定stream上传后台文件

历史: 我正在研究一个我们需要支持的项目: 背景使用NSURLSession上传文件。 服务器期望使用Content-Type: multipart/form-data上传文件 以前,我正在使用NSURLConnection绑定一对Streams,如本Apple示例所示 。 现在,我希望通过使用uploadTaskWithStreamedRequest : NSURLSession(Background Session)类似的方法。 我写了一个小的独立iOS样本+一个PHP服务器来validation我的概念。 问题:如果应用程序停留在前台,一切正常,但如果在上传过程中按Home键,一段时间后上传失败,出现错误: 域= NSURLErrorDomain代码= -997“丢失连接到后台传输服务” 在上传失败之前, NSStreamEventEndEncountered遇到写/生成器stream的NSStreamEventEndEncountered 。 注意:我知道可以将整个HTTP Post主体写入临时文件的解决方法,并使用NSURLSession'sfile uploadAPI。 但是,如果我可以做到这一点,以上更合适。 问题:有谁能猜到上传失败的可能原因是什么? 示例代码:我已经上传了iOS示例代码+ PHP服务器代码到下拉框。 这是代码 谢谢!

从swift中得到variables的值

所以我有一个closures调用任务这是一个post请求,我有一个全局variables称为值,我试图设置“值”的值是我从数据库中检索数据存储在一个名为“数组”。 不要担心tableview.reloadData部分,这已经完成了。 我只想知道如何从封闭中获得价值。 var values:NSArray = [] @IBOutlet weak var Open: UIBarButtonItem! override func viewDidLoad() { super.viewDidLoad() Open.target = self.revealViewController() Open.action = #selector(SWRevealViewController.revealToggle(_:)) self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) get() print ("values=\(values)") } func get(){ let request = NSMutableURLRequest(URL: NSURL(string: "http://www.percyteng.com/orbit/getAllpostsTest.php")!) request.HTTPMethod = "POST" let postString = "user=\("ios")" request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in […]

SOAP请求使用NSURLSession Objective C或SWIFT

我如何使用NSURLSession执行SOAP请求? 请查找SOAP请求格式。 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pm="http://sampleurl.com/webservices/pm"> <soapenv:Header/> <soapenv:Body> <pm:start> <username>awdmmappadmin1</username> <password>password</password> <completedDate>2016-04-25T13:37:34.699Z</completedDate> <gameMinutes>2</gameMinutes> <gameMoves>14</gameMoves> <gameSeconds>33</gameSeconds> <gameTimeSec>153</gameTimeSec> <guestId>2016</guestId> </pm:start>

AFNetworking2在POST请求中发送参数作为查询string?

我需要在URL中发送查询string以及在正文中的JSON在发送POST请求。要发送URL中的查询string我重写HTTPMethodsEncodingParametersInURI属性如在这个线程上SO AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:fullUrl]]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithArray:@[@"POST", @"GET", @"HEAD", @"PUT", @"DELETE"]]; [manager POST:fullUrl parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) { } failure:^(AFHTTPRequestOperation *operation, NSError *error) { }]; 但似乎这样做也将我的JSON数据添加到URL,因此我的请求不在服务器上执行。但我只需要发送'命令'参数到url和一些JSON数据到请求体。 我的fullUrlstring看起来像http:// some_ip_address / config?command = some_command ,param是NSDictionary对象。 请注意,在fullUrl ie 命令中有一个参数,我也发送一个NSDictionary对象作为参数 [manager POST:fullUrl parameters:param success:^(AFHTTPRequestOperation *operation, […]

使用NSURLSession下载时获取文件path

我想在下载时播放音乐,所以我用本地文件播放音乐,如何在下载NSURLSession的同时在tmp目录中获取文件path。 URLSession:downloadTask:didFinishDownloadingToURL方法:只在文件下载时调用,那我该怎么办

我正在调用web服务的图像的url。 该图像没有加载到uitableview

在debugging代码的过程中,我testing了URL,该URL在浏览器中运行,图像显示在浏览器中。 但是下面的代码不会将图像加载到图像包装器。 let row = indexPath.row cell.NewsHeading.font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline) cell.NewsHeading.text = SLAFHeading[row] if let url = NSURL(string: SLAFImages[indexPath.row]) { let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in if error != nil { print("thers an error in the log") } else { dispatch_async(dispatch_get_main_queue()) { cell.NewsImage.image = UIImage(data: data!) } } } task.resume() } […]

当应用程序在后台时是否可以使用NSFileManager的`copyItemAtURL:toURL:error:`方法?

我正在开发iOS应用程序,从相机胶卷上传video,使用NSURLSession进行背景configuration。 用户可以排队上传多个video(串行执行队列)。 一次上传包括: 使用PHImageManager的requestAVAssetForVideo方法获取对PHAsset的AVURLAsset引用。 将资源复制到临时目录(因为不能直接从AVURLAsset的URL上传)。 使用NSURLSessionUploadTask上传资源 我可以排队多个video,这个过程在前台运行良好。 他们一个接一个完成。 但是,如果我排队了几个video,然后背景的应用程序。 只要执行到达copyItemAtURL:toURL:error:阶段,它就会停止,直到我再次前台应用程序。 (我知道这是因为我在本地通知中发布debugging语句,在locking屏幕上可见)。 是否有可能使用copyItemAtURL:toURL:error:当应用程序背景? 如果没有,是否可以使用AVAssetExportSession呢? 编辑1我已经testing了这个连接到debugging器,而不是,应用程序从不执行复制命令。 但是只有当应用程序再次被预先登陆时才这样做。 编辑2为了澄清,执行在复制命令停顿。 它不会产生错误并继续执行。 并执行fileManager:shouldCopyItemAtURL:toURL:委托方法不会改变的东西。 该方法的文档也说: 在复制每个项目之前,文件pipe理器询问它的委托是否应该这样做。 它通过调用fileManager:shouldCopyItemAtURL:toURL:method; 如果该方法未实现(或者在OS X 10.5或更低版本中运行该进程),则会调用fileManager:shouldCopyItemAtPath:toPath:方法。 如果委托方法返回YES,或者委托没有实现适当的方法,则文件pipe理器继续复制文件或目录。

NSURLSession完成处理程序非常慢

当我运行以下代码时,我几乎可以立即打印一个响应,但是,在我的视图中可能需要十秒或更长时间。 似乎最类似的问题是由会话和处理程序在不同的线程上引起的。 但为什么最终会奏效呢? 很困惑… func downloadDetails(completed: DownloadComplete) { let url = NSURL(string: _detailsURL)! let session = NSURLSession.sharedSession() let task = session.dataTaskWithURL(url) { (data, response, error) -> Void in do { let dict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject] if let eyeColor = dict["eyeColor"] as? String { self._eyeColor = eyeColor } } catch { print("json […]

NSUrlSession在Swift中运行缓慢

在迅速,我正在迅速下载数据到我的iOS应用程序。 它工作得很好,尽pipe最终发生的事情是它可能需要长达20秒的时间来加载,即使我正在快速连接。 我不明白为什么会发生这种情况。 我几乎想要在应用程序打开之前下载所有的数据,虽然我不想这样做,因为我知道可以加快速度,我知道这是可能的,因为像YouTube和Facebook这样的应用程序可以加载和刷新小于20秒。 哎呀,YouTube加载video的时间less于这段时间。 我知道我的服务器没有那么快,但是我碰巧知道我的服务器比那更快。 我想提醒你,页面最终不会很快加载。 请帮忙。 这是NSUrlSession代码。 func contactApiUrl(){ let url = "http://www.example.com" let nsUrl = NSURL(string:url) let nsUrlRequest = NSURLRequest(URL: nsUrl!) let task = NSURLSession.sharedSession().dataTaskWithRequest(nsUrlRequest){ (data, response, error) in if let dat = data{ let contents = NSString(data:dat, encoding:NSUTF8StringEncoding) as! String self.aboutText.text = contents } } task.resume() } 我想感谢任何人可以提前帮助我。