【发布时间】:2014-03-22 08:16:05
【问题描述】:
我正在使用 NSURLSession 上传任务发送带有 JSON 数据的 HTTP POST 请求,并使用以下代码 sn-p。
NSData* requestData = [json_string dataUsingEncoding:NSUTF8StringEncoding];
NSURLSession *session = [NSURLSession sharedSession];
NSURL *remote_url = [NSURL URLWithString:@"http://<some ip>:<port>"];
NSMutableURLRequest *request =
[[NSMutableURLRequest alloc] initWithURL:remote_url];
[request setHTTPMethod:@"POST"];
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request fromData:requestData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"response received...");
}];
NSLog(@"log before resume");
[uploadTask resume];
NSLog(@"log after resume");
我确实在服务器端接收数据并且服务器发送 HTTP 200 响应。然而,
NSLog(@"log after resume");
NSLog(@"response received...");
永远不会被调用。为什么resume 阻塞并且从不调用completionHandler?
【问题讨论】:
-
有没有可能是你在服务器端做错了什么?
-
我没有遇到 [uploadTask resume] 之后的阻塞问题,但是自从我将模拟器更新到 iOS 10 后,执行对我来说也从未达到完成块。在此之前,iOS 9 总是成功或出错。
标签: ios iphone objective-c nsurlsession