モバイル共有ポイント アプリケーションに取り組んでいます。サブサイトのリスト コレクションを取得しようとしているときに問題に直面しています。非常に多くのブログを調べ、さまざまなアプローチを試みましたが、役に立ちませんでした。
私のホーム サイトには、ドキュメント ライブラリを作成した 2 つのサブ サイト (SampleSubsite と SampleSubsite2) があります。
/_vti_bin/SiteData.asmx で定義されている GetSite Web サービスは、次の応答を返します。
Url = " http://sp2010.lab.xyz.local:20852 ";
Url = " http://sp2010.lab.xyz.local:20852/SampleSubsite ";
Url = " http://sp2010.lab.xyz.local:20852/SampleSubSite2 ";
ここで、サブ サイト (この場合は SampleSubsite など) のリスト コレクションをフェッチしようとすると、次のように URL を作成します。
http://sp2010.lab.xyz.local:20852/SampleSubsite/_vti_bin/Lists.asmx
複数のオプションを試しましたが、役に立ちません。(Test はルート サイト名です)。以下の 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];
}