Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios8 阿福说:";无法分析响应";_Ios8_Afnetworking - Fatal编程技术网

Ios8 阿福说:";无法分析响应";

Ios8 阿福说:";无法分析响应";,ios8,afnetworking,Ios8,Afnetworking,我正在向服务器发送一个请求,服务器正在处理请求并响应。但是,在我的应用程序中,我收到: Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo=0x167668d0 {NSErrorFailingURLStringKey=https://***, _kCFStreamErrorCodeKey=-1, NSErrorFailingURLKey=https://***/, NSLocalizedD

我正在向服务器发送一个请求,服务器正在处理请求并响应。但是,在我的应用程序中,我收到:

Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo=0x167668d0     
{NSErrorFailingURLStringKey=https://***, _kCFStreamErrorCodeKey=-1, 
NSErrorFailingURLKey=https://***/, NSLocalizedDescription=cannot
parse response, _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x16731990 "cannot parse
response"
http请求中的Accept字段已足够

我甚至看不到messege到达的是什么,因为NSHTTPURLResponse对象为null

不使用wireshark之类的工具,会有什么问题,我能以什么方式看到什么信息


谢谢大家!

如果iOS无法解析响应,那么问题一定是来自服务器的http响应格式不正确,即使您被告知一切都是100%正确的,因为其他服务会与之通信

在我的例子中,一个Android应用程序通信成功,因为那里使用的网络框架没有那么严格,即使http响应的内容长度与数据的实际长度不匹配,它也可以读取此消息,这与ios不同

使用tcpdump检查http通信

如果您正在使用(iOS8对此有问题,但在iOS7中工作)

要发送到服务器,请按照以下步骤进行:

NSData *dataToSend = [jsonData dataUsingEncoding:NSUTF8StringEncoding]

当我尝试使用HTTPGET方法而不是HTTPPOST调用web方法时,我遇到了同样的问题。web服务方法期望POST请求无法获取。希望这些信息能对某些人有所帮助。

首先,我要确保您在正文和标题中都发送了正确的参数。我收到了这个错误,在将其中一个参数从主体移动到头部之后,我收到了正确的响应


如果有任何关于api的文档,请确保正确地遵循它

我看到这个错误是因为我使用的一个框架试图在一个JSON编码的主体内的GET请求中发送URL参数(而不是在URL字符串中作为URL编码的参数)。这导致服务器发回“无效参数消息”,客户端无法处理该消息,而是中止了mid请求。从主体参数切换到GET请求的URL编码参数修复了这个问题。

我也遇到了同样的问题,原因是API需要GEThttp方法,我需要传递一个参数,我通过以下代码发送它:

[request setHTTPBody:[postString数据使用编码:NSUTF8StringEncoding]

当我使用GET方法执行请求时,它将报告错误


我的解决方案是,当API需要GET方法时,参数应该添加到URL上,例如
http://apiserver/api?paramName=paramValue
,当API方法为POST时,使用上面的代码,为请求对象设置HTTPBody。

我也有同样的错误。在我的例子中,没有在请求对象上指定http方法。这是我的问题。我使用AlamoFire进行http请求。我面临同样的问题,解决方案是什么
NSData *dataToSend = [jsonData dataUsingEncoding:NSUTF8StringEncoding]