2017-03-22 4 views
1

Ich versuche, Ordner in einem anderen Ordner mithilfe der OneDrive API zu erstellen. Ich habe die Dokumentation von this Seite verwendet.Erstellen eines Ordners in einem anderen Ordner mit OneDrive API

Zuerst habe ich einen neuen Ordner erstellen JSON-Objekt:

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

Zweite ich dieses Objekt auf den HttpContent hinzufügen:

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

Dann mache ich eine Post-Anforderung wie folgt aus:

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

Dies funktioniert einwandfrei und ein Ordner mit dem Namen Neuer Ordner wird zum Stamm meines Laufwerks hinzugefügt. Jetzt möchte ich einen Ordner in dem Ordner erstellen, den ich gerade erstellt habe. So mache ich eine Post-Anfrage, die wie folgt aussieht:

Ich erwarte einen neuen Ordner namens Neuer Ordner in dem zuvor erstellten Ordner. Aber diese Anfrage gibt mir einen Http 400 Fehler.

Wie kann ich einen neuen Ordner in einem anderen Ordner erstellen?

Antwort

1

Ihre zweite Anfrage ist fehlerhaft.

Es gibt zwei Möglichkeiten, ein Objekt als Kind eines anderen zu erstellen - nach ID oder nach Pfad.

von id würde in etwa so aussehen:

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

Durch Pfad so etwas wie (man beachte die Verwendung von Doppelpunkten) aussehen:

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

der Kontext gegeben, was sind Sie nach ist die meist wahrscheinlich:

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

Vielen Dank für Ihre Antwort. Vielleicht ist es eine gute Idee, dies der API-Dokumentation hinzuzufügen. Die Dokumentationsseite, die ich nur verwendet, zeigt eine Anforderungs-URI mit der Artikel-ID. 'POST/Laufwerk/Elemente/{Eltern-ID}/Kinder ' Die Beispielanforderung verwendet einen Pfad, aber keine Doppelpunkte. – MennoB

+0

Danke für die Rückmeldung, es sieht so aus, als könnte es ein wenig Arbeit sein, um ein wenig mehr Klarheit über die Ordnererstellungsoptionen zu haben. – Brad

Verwandte Themen