2017-03-22 27 views
1

OneDrive APIを使用して別のフォルダ内にフォルダを作成しようとしています。私はthisのドキュメントを使用しました。OneDrive APIを使用して別のフォルダ内にフォルダを作成する

まず、私は新しいフォルダJSONオブジェクトを作成します。私はHttpContentにこのオブジェクトを追加

var folderObject = JObject.FromObject(new 
{ 
    name = "New Folder", 
    folder = new 
    { } 
}); 

セカンドを:

HttpContent content = new StringContent(folderObject.ToString(), Encoding.UTF8, "application/json"); 

それから私はこのようなポスト要求します:

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/children", content); 

これは正常に動作し、新しいフォルダという名前のフォルダがドライブのルートに追加されます。今作成したフォルダの中にフォルダを作成します。だから私はこのようになりますPOSTリクエストを行います。

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/New Folder/children", content); 

私は以前に作成したフォルダ内に新規フォルダという名前の新しいフォルダを期待しています。しかし、この要求は私にHTTP 400のエラーを与えます。

別のフォルダ内に新しいフォルダを作成するにはどうすればよいですか?

答えて

1

2番目のリクエストが不正です。

IDまたはパスでアイテムを別のアイテムの子として作成するには、2通りの方法があります。 IDで

のようなものになります。パスでは

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/items/{parentItem.id}/children", content); 

を(コロンの使用を注意してください)のようなものになります。

状況を考えると
HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root{parentItem path}:/children", content); 

を、何を後にしていることはほとんどあり可能性:

HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root:/New Folder:/children", content); 
+0

ありがとうございます。これをAPIドキュメントに追加することをお勧めします。私が使用したドキュメンテーション・ページには、アイテムIDを使用してリクエストURIが表示されます。 'POST/drive/items/{parent-id}/children' 例リクエストはパスを使用しますが、コロンは使用しません。 – MennoB

+0

フィードバックをお寄せいただきありがとうございます。フォルダ作成オプションについてもう少し明確になるよう少しの作業が必要なようです。 – Brad

関連する問題