2011-02-25 31 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