0

モバイル共有ポイント アプリケーションに取り組んでいます。サブサイトのリスト コレクションを取得しようとしているときに問題に直面しています。非常に多くのブログを調べ、さまざまなアプローチを試みましたが、役に立ちませんでした。

私のホーム サイトには、ドキュメント ライブラリを作成した 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];
}
4

2 に答える 2

0

New-WebServiceProxy コマンドレットを使用してこれに苦労していました。?WSDLここで提案されているように、クエリ文字列の最後に追加すると問題は解決しましたhttp://blogs.msdn.com/b/powershell/archive/2010/06/24/using-new-webserviceproxy-to-get-変更してアイテムを共有ポイントのリストに追加-2007.aspx

于 2015-04-08T12:13:44.310 に答える