草庐IT

NSUrlSession

全部标签

swift - 递归/循环 NSURLSession 异步完成处理程序

我使用的API需要多次请求才能获得搜索结果。之所以这样设计,是因为搜索可能需要很长时间(>5分钟)。初始响应会立即返回有关搜索的元数据,并且该元数据将用于后续请求,直到搜索完成。我不控制API。第一个请求是对https://api.com/sessions/search/的POST对此请求的响应包含有关搜索的cookie和元数据。此响应中的重要字段是search_cookie(一个字符串)和search_completed_pct(一个Int)第二个请求是一个POST到https://api.com/sessions/results/将search_cookie附加到URL。例如htt

ios - (kCFStreamErrorDomainSSL,-9814)

我正在尝试从webview加载php脚本,但每次都出现错误。NSURLSession/NSURLConnectionHTTP加载失败(kCFStreamErrorDomainSSL,-9814)我已经将我的info.plist更新为NSAppTransportSecurityNSAllowsArbitraryLoads请帮我看看哪里出错了。这是我的代码funcwebView(webView:UIWebView,shouldStartLoadWithRequestrequest:NSURLRequest,navigationType:UIWebViewNavigationType)->B

ios - 从 URLSession Completion Handler 函数返回字符串 Swift 3

我需要这个函数(它从数据库中获取一些数据)来返回一个字符串,但我不知道如何返回。我发现了一些类似的问题/解决方案,但我仍在努力实现合适的解决方案(我对swift还很陌生)classHelper{staticfuncpReq(jsonURL:String,col:String)->String{letconfig=URLSessionConfiguration.defaultletsession=URLSession(configuration:config)leturl=URL(string:jsonURL)!letrequest=URLRequest(url:url)varstrin

ios - 如何用 `downloadTask` 为 `completionHandler ` 编写单元测试?

这是我的下载函数://DownloadafilefromtheurltothelocaldirectoryclassfuncdownloadUrl(url:URL,todirUrl:URL,completion:(()->())?){letsessionConfig=URLSessionConfiguration.defaultletsession=URLSession(configuration:sessionConfig)letrequest=URLRequest(url:url)lettask=session.downloadTask(with:request){(tempLoc

swift - 应用程序处于后台后未调用 URLSessionDownloadDelegate 方法 didWriteData

在我的应用程序中,我想下载大文件。因此,我想向用户显示下载进度。为此,我实现了URLSessionDownloadDelegate。在应用程序进入后台之前,这非常有用。当用户随后重新打开应用程序时,不会调用didWriteData。然而didFinishDownloadingTo仍然被调用。因此,这不是委托(delegate)本身的问题。其他一些开发人员在https://forums.developer.apple.com/message/229215#229215中报告了类似的问题.但是,到目前为止,似乎还没有针对此问题的解决方案或变通方法。这里有人找到解决方法吗?如果不是,我可以使

ios - 如何处理后台 url session 丢失的互联网连接?

我有后台下载zip文件:ifleturl=NSURL(string:urlstring){letconfig=NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier((NSUUID().UUIDString))letsession=NSURLSession(configuration:config,delegate:self,delegateQueue:nil)lettask=session.downloadTaskWithURL(url)session.sessionDescription=file

ios - NSURLSessionDataDelegate 未调用

我一直在尝试实现NSURLSessionDataDelegate,特别是修改响应中收到的HTTPheader中的缓存策略。为此,我尝试在使用willCacheResponse方法缓存proposedResponse之前拦截它,但它没有被调用。我查看了这个网站和其他网站,但我仍然不确定为什么没有调用函数willCacheResponse。有什么想法吗?classViewController:UIViewController,NSURLSessionDelegate,NSURLSessionDataDelegate,NSURLSessionTaskDelegate{overridefunc

ios - 如果响应返回 200 以外的状态代码,是否停止我的 NSURLSession?在 SWIFT

我正在尝试使用NSURLSession加载图像。如果响应返回200以外的状态代码,我该如何“停止”NSURLSession?我想显示网络问题弹出窗口。classViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()loadData()}funcloadData(){self.downloadFullImageFrom("https://www.google.fr/logos/doodles/2015/holidays-2015-day-3-6399865393250304-5649050

ios - 如何重试失败的网络请求

我对Swift/iOS有点陌生,一直在使用URLSession对RESTAPI进行网络调用。这是我用来发出网络请求的(稍微清理过的)代码:enumApiRequestError:Error{casestatusCodeOtherThan200(statusCode:Int)//othererrorcaseswillbeaddedhere}enumApiResponse{casesuccess(Data)casefailure(Error)}typealiasmyCompletionHandler=(ApiResponse)->()funcsampleRestCall(token:Str

swift - 如何处理 500 个 http 错误

我正在尝试使用URLSession.shared.dataTask函数访问类HTTPURLResponse(URLResponse)中的500个错误的自定义服务器响应主体.我只能访问statusCode和allHeaderFields但它似乎没有帮助。java中ex的等价物。是HttpURLConnection.getErrorStream(),但我无法在纯swift中找到类似的东西(我想在不使用第3方库的情况下解决这个问题)。如何获取500错误的文本响应? 最佳答案 lettask=session.dataTask(with:ur