NSURLSession POST 方法没有正确获得响应

Posted

技术标签:

【中文标题】NSURLSession POST 方法没有正确获得响应【英文标题】:NSURLSession POST method not getting response properly 【发布时间】:2016-04-26 12:46:34 【问题描述】:

我正在使用 NSURLSession 发送 POST 请求,并得到以下响应:

     status code: 200, headers 
    "Cache-Control" = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
    Connection = "Keep-Alive";
    "Content-Length" = 77;
    "Content-Type" = "text/html; charset=UTF-8";
    Date = "Tue, 26 Apr 2016 12:39:23 GMT";
    Expires = "Thu, 19 Nov 1981 08:52:00 GMT";
    "Keep-Alive" = "timeout=5, max=100";
    Pragma = "no-cache";
    Server = "Apache/2.4.17 (Win32) OpenSSL/1.0.2d php/5.6.15";
    "X-Powered-By" = "PHP/5.6.15";
  (null)
Data = "result":"status":"success","msg":"documents saved Successfully."

我不想要这个 Response headers 。使用上述响应无法解析数据。 我怎样才能做到这一点?请帮助我。谢谢

【问题讨论】:

什么反应?你如何记录它?那是来自服务器的连接内部的标头数据,而不是您的。什么 这不是数据这是服务器端错误请检查您随请求发布的内容类型,它是否在服务器端实现 检查您的请求和响应序列化。在邮递员或谷歌浏览器的高级休息客户端中检查您的网址。检查服务器接受的格式数据以及响应格式(例如:字符串、json 对象等)。你可以向你的服务人员询问这个 【参考方案1】:

这不是您想要的数据。 请检查您的请求和内容类型(大部分),因为当我们的请求未正确生成或我们的标头值不满足服务器端标头值时,这是服务器端错误。

当你得到你的响应数据图片时,就像这样

 NSString *status = [[responseObject valueForKey:@"result"]valueForKey:@"status"];

【讨论】:

【参考方案2】:

这看起来像是您转储了 NSURLResponse 或 NSCachedURLResponse 对象的内容,而不是包含来自请求的数据的实际 NSData 对象。没有看到你的代码,我不能说如何修复它,但我似乎很清楚你在这里倾倒了错误对象的内容。 :-)

【讨论】:

以上是关于NSURLSession POST 方法没有正确获得响应的主要内容,如果未能解决你的问题,请参考以下文章

使用带有参数的 NSURLSession (HTTP POST) 下载 PDF

尝试使用 NSURLSession 加载网页

UI进阶之数据解析(网络请求NSURLSession)

如何在 swift 中使用 NSURLSession POST JSON 数据

使用 NSURLSession 发送 POST 请求

iOS开发网络篇—发送GET和POST请求(使用NSURLSession)