iPhone中的SOAP Xml问题

时间:2011-02-25 13:18:40

标签: iphone xml soap sdk

不带参数的方法按预期给出正确的结果。虽然需要很少参数的webservice方法返回没有相关结果,而是显示 消息

我使用以下代码:

NSString *post =[[NSString alloc] initWithFormat:@"param1=%@&param2=%@&param3=%@&param4=%@&pageSize=%@&pageNo=%@",@"",@"81",@"1",@"",@"40",@"1"];

NSURL *url = [NSURL URLWithString:@"www.someurlxyz.com"];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];

soapMsg = [soapMsg stringByAppendingString:post];

NSLog(@"value of soap is %@",soapMsg);
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMsg length]];
//postData =[postData stringByAppendingString:];

[req addValue:@"text/xml; charset=utf-8"  forHTTPHeaderField:@"Content-Type"];
[req addValue:@"http://www.someurlxyz.com/Search/Methodname?"  forHTTPHeaderField:@"SOAPAction"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]];
[post release];

消息 (返回的内容如下)。 服务器无法识别HTTP标头SOAPAction的值:http://www.someurlxyz.com/Search/Methodname

2 个答案:

答案 0 :(得分:1)

可能是命名空间的问题,或者您可能正在调用错误的方法。 使用像SoapUI这样的第三方客户端检查您的网络服务,并检查您是否在iPhone应用程序中的请求中创建了完整的字符串。

答案 1 :(得分:0)

服务器在这里期待什么?

您好像正在发送param1=&param2=81&param3=1&param4=&pageSize=40&pageNo=1

这看起来不像是真正的肥皂消息,甚至不是XML。

您没有指定soapMsg最初的内容,但您要将上面的字符串附加到其中。

也许您打算格式化原始的soapMgs字符串?