这是我到目前为止的地方NSURLSessionUploadTask
:
- iOS 应用程序
NSURLSessionUploadTask
使用 POST启动 - 服务器收到 HTTP POST 请求
- 服务器读取请求的内容,以便上传数据
- 服务器向 iOS 发送 HTTP 响应,其中包含以下内容:
HTTP/1.1 200 正常 服务器:BaseHTTP/0.3 Python/2.7.10 日期:格林威治标准时间 2015 年 10 月 30 日星期五 16:15:21 内容类型:文本/html 内容长度:96 <html><head><title>POST RESPONSE</title></head><body><p>文件已上传。</p></body></html>
- iOS 应用程序接收响应并
NSLogs
通过NSURLSessionTaskDelegate -> URLSession:task:didCompleteWithError:
<NSHTTPURLResponse: 0x15d95110> { URL: http://10.157.239.129:42000/ } { 状态码: 200, headers { “内容长度”= 96; “内容类型”=“文本/html”; 日期 =“格林威治标准时间 2015 年 10 月 30 日星期五 16:15:21”; 服务器 = "BaseHTTP/0.3 Python/2.7.10"; } }
- 但是,当我尝试
NSLog
响应内容时,该方法NSURLSessionTaskDelegate: -> URLSession:dataTask:didReceiveData:
- (void)URLSession:(NSURLSession *)session 数据任务:(NSURLSessionDataTask *)数据任务 didReceiveData:(NSData *)数据 { // 当数据任务接收到一些数据时调用(不适用于直接上传?) 如果(数据!= NULL) { NSLog(@"%s: %@", __PRETTY_FUNCTION__,[[NSString alloc] initWithData:数据编码:NSUTF8StringEncoding]); } 别的 { NSLog(@"%s: 但没有收到实际数据。", __PRETTY_FUNCTION__); } // 如果我们不在“活动”或前台,则将一些后台信息记录到控制台 如果(UIApplication.sharedApplication.applicationState != UIApplicationStateActive) { [BackgroundTimeRemainingUtility NSLog]; } }
- 被称为我得到这个输出:
2015-10-30 12:15:22.648 NSURLSessionUploadTaskExample[215:7286]-[ViewController URLSession:dataTask:didReceiveData:]: (null)
谁能告诉我为什么 iOS 似乎丢失了 HTTP 响应中的内容?