2011-02-25 50 views
-1

不带参数的方法会按预期提供正确的结果。而webservice的方法需要很少的参数返回没有相关的结果,而不是显示消息iPhone中的SOAP Xml问题

im使用以下代码:

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 Header SOAPAction的值:http://www.someurlxyz.com/Search/Methodname

+0

请不要在问题标题中表达紧迫感。 – 2011-02-25 13:26:39

回答

1

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

0

服务器在这里期待什么?

它看起来像您发送param1=&param2=81&param3=1&param4=&pageSize=40&pageNo=1

看起来并不像一个实际的SOAP消息,甚至XML。

您没有指定最初的soapMsg,但是您将上面的字符串附加到它上面。

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

+0

@“<?xml version = \”1.0 \“encoding = \”utf-8 \“?>” \t“” \t “” “<参数1的xmlns = \” HTTP://www.mywebsite.com/Method \ “>” \t “ INT” “” \t “” \t““ – dark 2011-02-25 13:47:11

+0

我第一次打它的网址它给我的XML文件结构,然后我使用XML解析器来解析XML在webDi dLoadFinishing – dark 2011-02-25 13:48:29

+0

我想你应该填充XML结构,而不是附加到它的结尾。通过格式化字符串和附加文本来实现SOAP会很痛苦。 :( – koregan 2011-02-25 14:12:59