2017-11-13 3 views
0

Ich versuche, Daten in einer Liste in SharePoint Online mit dem C# HttpClient zu buchen. Das ist mein Code:Abrufen von "BadRequest" beim Veröffentlichen von Daten in SharePoint Online-Liste mit HttpClient

using (var client = new SPHttpClient(webUri, userName, password)) 
     { 
      var listTitle = "HttpClientList"; 
      var itemPayload = new 
      { 
       __metadata = new 
       { 
        type = "SP.Data.HttpClientListListItem" 
       }, 
       Title = "test3",<--column name "Title" 
       _x0071_cr5 = "value3"<--column name "Value" 
      }; 
      var endpointUrl = string.Format("{0}/_api/web/lists/getbytitle('{1}')/items", webUri, listTitle); 
      var data = client.ExecuteJson(endpointUrl, HttpMethod.Post, itemPayload); 
      Console.WriteLine("Task item '{0}' has been created", data["d"]["Title"]); 
      Console.ReadLine(); 

Ab sofort bekomme ich den Status "400, BadRequest". Meine Vermutung ist, dass ich etwas vermisse oder der Post die falschen Daten zufüge. Ich bin diesem Blogpost gefolgt Blogpost Ich kann nur das Verb GET ausführen. Alle anderen Verben gibt mir "400, BadRequest"

+0

Haben Sie versucht, zu überprüfen, ob es weitere Details im Hauptteil der Antwort gibt. – Nkosi

+0

Ich habe einige Entwicklungen: Ich kann jetzt Daten erstellen und aktualisieren, aber nur für die Title-Spalte kann Cant mehr als eine Spalte erstellen oder aktualisieren. Ich kann immer noch keine Artikel löschen. kann den Körper der Antwort nicht finden. kann nur finden: "RequestMessage", "StatusCode", "Kopfzeilen", "EnsureSuccessStatusCode", "IsSuccessStatusCode" Perhapse Ich suche nach einem falschen Ort für den Körper – AllramEst

+0

Sie erhalten den Körper aus der Antwort Inhalt.body = erwarten Antwort .Content.ReadAsStringAsync() ' – Nkosi

Antwort

0

Gelöst es mit verschiedenen Lösungen.

Das rechte ListItem HttpClientListListItem hinzugefügt. erstellt alle Spalten über das ListSettings-Bedienfeld. Ersetzt die client.ExecuteJson() durch client.ExecuteJson(endpointUrl, HttpMethod.Post, headers, default(string));. Danke für die Hilfe!

Verwandte Themen