ASIHTTPRequest 400错误请求(肥皂)

时间:2011-06-10 01:53:07

标签: iphone objective-c web-services soap asihttprequest

我在IOS中使用ASIHTTPRequest。我有一个wsdl / soap网络服务。 当我打电话给我的网络服务器时,我收到错误400错误的请求。我正在使用此代码:

NSData *xmlData =  // I construct the soap message witk soapui

NSURL *url = [NSURL URLWithString:@"https:myUrlWSDL"];
self.currentRequest = [ASIFormDataRequest requestWithURL:url];
[self.currentRequest appendPostData:xmlData];
[self.currentRequest setDelegate:self];
[self.currentRequest startAsynchronous];

[[currentRequest requestHeaders] description];
NSLog(@"Headers %@",[currentRequest requestHeaders]);

NSLog向​​我展示:header(null)。

我的第一个问题,为什么Headers为空?这是正常的吗?

在控制台中我有400个错误请求。 在代表中,我做:

- (void)requestFinished:(ASIHTTPRequest *)request
{
     NSLog(@"headers: %@", [self.currentRequest responseHeaders]);
}

它告诉我:

"Cache-Control" = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
     Connection = close;
    "Content-Encoding" = gzip;
    "Content-Length" = 285;
    "Content-Type" = "text/xml; charset=utf-8";
    Date = "Fri, 10 Jun 2011 01:25:40 GMT";
    Expires = "Thu, 19 Nov 1981 08:52:00 GMT";
    Pragma = "no-cache";
    Server = Apache;
    "Set-Cookie" = "symfony=...4; path=/";
    Vary = "Accept-Encoding,User-Agent";
    "X-Powered-By" = "PHP/5.3.3";

我的问题是:为什么400错误请求错误?我的请求中有什么问题?或者问题出在我的肥皂里?

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

据我所知,在发出SOAP / WSDL请求时,您需要在请求中设置一些标题

Content-Type: text/xml
Content-Length: length of your message in bytes
SOAPAction: your SOAPAction goes here

ASIHTTPRequest设置内容长度本身(不确定内容类型)。您必须自己添加SOAPAction标头。