从iPhone传递给webservice的参数不起作用

从iPhone传递给webservice的参数不起作用

问题描述:

我试图从我的xcode项目连接到webservice。我的设置适用于调用方法和gettin返回值,但不是当我尝试将参数传递给服务时。我的继承人代码:从iPhone传递给webservice的参数不起作用

NSString *soapMsg = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n <soap:Envelope 
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" 
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" 
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body\n> 
<TestArgMethod xmlns=\"http://tempuri.org\">\n 
<argument>argument1</argument> 
</TestArgMethod> 
</soap:Body> 
</soap:Envelope>"; 
NSURL *url = [NSURL URLWithString:@"http://myserver/myservice.asmx"]; 
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; 
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMsg length]]; 
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[req addValue:@"http://tempuri.org/TestArgMethod" forHTTPHeaderField:@"SOAPAction"]; 
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"]; 
[req setHTTPMethod:@"POST"]; 
[req setHTTPBody: [soapMsg dataUsingEncoding:NSUTF8StringEncoding]]; 
conn = [[NSURLConnection alloc] initWithRequest:req delegate:self]; 
NSLog(soapMsg); 
if (conn) { 
     webData = [[NSMutableData data] retain]; 
} 

,并用C#编写服务是这样的:

[Webmethod] 
public string TestArgMethod(string argument) { 
return argument; 
} 

有什么事情i'm与 <argument>argument1</argument>失踪?该服务无法识别发送参数,只是调用该方法。当传递这些参数时,它们是否需要以不同的方式进行编码以指示它的字符串?

你的请求必须是一个问题。我使用你的字符串,我得到了许多错误。格式化你的xml值,并检查NSLog。

NSString *soapMessage = [NSString stringWithFormat: 
           @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" 
           "<query>\n" 
           "<Key>%@</Key>\n" 
           "<Email>%@</Email>\n" 
           "</query>\n",key,email]; 
NSLog(@"%@",soapMessage); 
+0

该请求的工作原理,我在粘贴它时遇到了一些标记问题。我试着按照你的建议,用stringWithFormat重写它: ' = :Envelope xmlns:xsi = \“http://www.w3.org/2001/XMLSchema-instance \”xmlns:xsd = \“http://www.w3.org/2001/XMLSchema \”xmlns:soap = \“http://schemas.xmlsoap.org/soap/envelope/ \”> \ n“ ” \ n“ ” \ n“ “%@ \ n” 个 “ \ n” 个 “ \ n” 个 “皂:信封\> \ n”,@ “参数1”];' – Hakon 2011-06-14 13:26:34

+0

这就是NSLog的输出: 参数1 皂:信封> – Hakon 2011-06-14 13:49:40