2010-03-11 82 views
0

我必須使用多個SOAP消息才能從Web服務獲取數據。我得到了一些例子,說明如何做到這一點,但它們都具有XML(http://icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/iPhone上的SOAP消息

// ---- LOGIN ----- 
NSString *soapMessage = [NSString stringWithFormat:       
@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" 
"<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">\n" 
"<soap12:Body>\n" 
"<Login xmlns=\"http://tempuri.org/\">\n" 
"<sUserID>USER</sUserID>\n" 
"<sUserPw>PASSWORD</sUserPw>\n" 
"<sDomain>SERVER</sDomain>\n" 
"</Login>\n" 
"</soap12:Body>\n" 
"</soap12:Envelope>\n" 
]; 
NSString *urlToSend = [[NSString alloc] initWithString:@"http://SERVER/DIRECTORY/WSDL_FILE.ASMX"]; 
NSString *callTOMake = [[NSString alloc] initWithString:@"http://WEBSERVER/Login"]; 

兩個問題: 1)是否有意義閱讀從一個類或文件到Xcode中SOAP消息?或者我可以通過代碼來定義它們嗎?

2)我用SOAPUI & .NET來查詢服務。它工作正常...但是當我從iPhone模擬器做它它返回以下內容:

2010-03-10 15:13:54.773 Hello_SOAP [91204:207] soap:ClientServer無法識別HTTP的值Header SOAPAction:http://WEBSERVER/DIRECTORY/Login

我怎樣才能找出是什麼問題導致在模擬器上說的錯誤?

回答

1

好......我有我的問題的一個解決方案......(#2),而不是寫代碼和盤算,如果事情會通過試驗和錯誤的工作,我用託德·迪奇多夫SOAP客戶端http://code.google.com/p/mac-soapclient/

那你可以通過這種方式找出SOAP調用的簡單程度,並將其放在代碼上...順便說一句:你會得到漂亮的請求和響應格式......這樣你就可以相應地格式化你的代碼行...

希望這會有所幫助