ASIHTTPRequest 400 плохой запрос (мыло) - PullRequest
0 голосов
/ 10 июня 2011

Я использую ASIHTTPRequest в IOS.У меня также есть веб-сервисы 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 показывает мне: заголовки (ноль).

Мой первый вопрос, почему заголовки нулевые?это нормально ??

А в консоли у меня 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 голосов
/ 10 июня 2011

Насколько я могу судить, при создании запроса SOAP / WSDL вам необходимо установить несколько заголовков в вашем запросе

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

ASIHTTPRequest устанавливает саму длину контента (не уверен насчет типа контента). Вы должны будете добавить заголовок SOAPAction самостоятельно.

...