使用ASIHTTPRequest获取响应时遇到了一些麻烦,这非常令人伤脑筋。 我在ASIHTTPRequest的POST-Body中向服务器发送SOAP请求。 到目前为止,请求正在发送,但响应字符串是“(null)”,根据控制台和响应数据的长度为0。 但是,当我发送SOAP-Body字符串时,我使用NSLog()放入控制台;使用Firefox插件“POSTER”到服务器我得到了我想要的响应。另一方面,如果SOAP-Request中出现错误,则在ASIHTTPRequest中获得响应。 到目前为止,我完全没有想法,如果有人有想法提供帮助,那将是非常友好的。
这是我的代码。
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:myURL];
[request addRequestHeader:@"Content-Type" value:@"text/xml"];
NSLog(@"XML: %@",[carInsurance buildXMLString]); //Debug output
NSMutableData *theData = [[carInsurance buildXMLString] dataUsingEncoding:NSUTF8StringEncoding];
[request addRequestHeader:@"Content-Length" value:[NSString stringWithFormat:@"%d",[theData length]]];
[request setPostBody:theData];
[request setRequestMethod:@"POST"];
NSLog(@"Headers before: %@",[[request requestHeaders] description]); //Debug output
[request startSynchronous];
NSLog(@"Headers after: %@",[[request requestHeaders] description]);
这里更好奇的是我的Debug头。
2010-10-12 14:39:11.945 appname [12484:207]之前的标题:{ “内容长度”= 1944; “Content-Type”=“text / xml”; }
答案 0 :(得分:1)
安装一个像wireshark这样的工具,用它来嗅探请求和响应(使用iphone模拟器)。
假设响应也是空的,嗅探POSTER发送的请求并将其与iphone发送的请求进行比较。
如果仍然不明显是什么问题,请将wireshark“跟随tcp stream”输出添加到您的问题中。