为什么我无法从Web服务获取数据,我得到反馈“列表不存在”。

时间:2012-10-19 08:51:08

标签: ios web-services soap asihttprequest

下面是请求Web服务的代码,我收到反馈@“列表不存在。您选择的页面包含一个不存在的列表。它可能已被其他用户删除。”

NSString *soapMessage = @"<?xml version=\"1.0\" encoding=\"utf-8\"?><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><GetList xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\"><listName>Contact</listName></GetList></soap:Body></soap:Envelope>";

NSString * wsURL = @"http://192.168.11.133/Jason/_vti_bin/Lists.asmx";

NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",wsURL]];
ASIHTTPRequest * theRequest = [ASIHTTPRequest requestWithURL:url];

[theRequest addRequestHeader:@"Content-Type" value:@"text/xml; charset=utf-8"];
[theRequest addRequestHeader:@"SOAPAction" value:@"http://schemas.microsoft.com/sharepoint/soap/GetList"];
[theRequest setUsername:@"username"];
[theRequest setPassword:@"password"];
 [theRequest addRequestHeader:@"Content-Length" value:msgLength];
 [theRequest setRequestMethod:@"POST"];
 [theRequest appendPostData:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

 [theRequest setDefaultResponseEncoding:NSUTF8StringEncoding];

[theRequest setTimeOutSeconds:20];
[theRequest setDidFailSelector:@selector(onRequestFail:)];
[theRequest startSynchronous];

网络服务来自sharepoint。 我觉得我的代码是正确的。谁能提出一些建议?感谢。

2 个答案:

答案 0 :(得分:1)

offtopic:

ASIHTTPRequest不再受支持,对于POST请求,这是一个类ASIFormDataRequest

  

请注意,我不再使用此库 - 您可能需要考虑为新项目使用其他内容。 :)

你可以选择像:

答案 1 :(得分:0)

这应该是SharePoint问题。 直接使用IP会导致一些问题。 我通过映射主机名来解决问题。