我正在开发一个移动共享点应用程序。我在尝试检索子站点的列表集合时遇到问题。浏览了这么多博客并尝试了不同的方法,但没有用。
我的主站点有两个子站点(SampleSubsite 和 SampleSubsite2),我在其中创建了文档库。
/_vti_bin/SiteData.asmx 中定义的 GetSite Web 服务返回以下响应。
网址 = " http://sp2010.lab.xyz.local:20852 ";
网址 = " http://sp2010.lab.xyz.local:20852/SampleSubsite ";
网址 = " http://sp2010.lab.xyz.local:20852/SampleSubSite2 ";
现在,当我尝试获取子站点的列表集合(在本例中为 SampleSubsite)时,我正在按如下方式构建 URL。
http://sp2010.lab.xyz.local:20852/SampleSubsite/_vti_bin/Lists.asmx
我尝试了多种选择,但没有用。(测试是根站点名称)。在以下所有 3 种情况下,我都获得了根集合本身。
http://sp2010.lab.xyz.local:20852/Sites/SampleSubsite/_vti_bin/Lists.asmx
http://sp2010.lab.xyz.local:20852/Sites/Test/SampleSubsite/_vti_bin/Lists.asmx
http://sp2010.lab.xyz.local:20852/Test/SampleSubSite/_vti_bin/Lists.asmx
任何人都可以通过一些了解它。
代码片段如下:
#define kFetchListCollectionXML @"<?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>"\
@"<GetListCollection xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\" />"\
@"</soap:Body>"\
@"</soap:Envelope>"\
- (void)getListCollectionOfSite:(NSString *)sitePath {
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@/_vti_bin/Lists.asmx",sitePath]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"http://schemas.microsoft.com/sharepoint/soap/GetListCollection" forHTTPHeaderField:@"SOAPAction"];
[request setValue:[NSString stringWithFormat:@"%ld",(unsigned long)kFetchListCollectionXML.length] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:[kFetchListCollectionXML dataUsingEncoding:NSUTF8StringEncoding]];
[self performConnectionWithRequest:request];
}