[英]NSURLSessionDataTask failed with error code -999
我正在使用NSUrlSession调用后端API。 有时API工作正常,但有时却遇到类似问题
HTTP加载失败(错误代码:-999) , HTTP加载失败(错误代码:-1200)
我对此进行了研究,建议的可能解决方案是使用“ 应用程序传输安全设置”,而我已经在使用它。
下面是我正在使用的代码:-
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
} downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
} completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSInteger statusCode = [httpResponse statusCode];
completionBlock();
}];
[dataTask resume];
因此无法找出导致NSURLSessionDataTask失败的确切原因 。 甚至不调用完成块。
有什么建议么?
谢谢,
错误代码-999
被取消请求,因为您使用NSURLSession
包装器,可能看不到正确的消息。
无论如何,您都在实例化3个新对象:配置,管理器和数据任务。 它们中没有一个在另一个对象(例如, UIViewController
)中具有强引用,因此,当您调用[dataTask resume]
,ARC已经删除了对象的引用,因为在同步代码的概念中,此代码已完成。
总而言之,这是正确的行为,要解决此问题,请尝试在您的类中创建AFURLSessionManager
的strong
引用,一切都会好起来的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.