2010-03-11 84 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调用的简单程度,并将其放在代码上...顺便说一句:你会得到漂亮的请求和响应格式......这样你就可以相应地格式化你的代码行...

希望这会有所帮助