SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Fehler 400 Bad Request bei Rest-Aufruf

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
9 Beiträge
Willi Mommsen erstellt 19 Jan. 2017 16:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo in die Runde!

Ich sitze bereits seit mehreren Stunden an einem Problem und hoffe, dass mir hier jemand die Augen öffnen kann :)

Für eine Anwendung müssen Daten per Rest-Schnittstelle (c#) in eine SharePoint-Liste geschrieben werden.
Das Abrufen, sowie das Hinzufügen von Items funktioniert einwandfrei. Wenn ich einen bestehenden Datensatz ändern möchte, bekomme ich den o.g. Fehler.

Fiddler wirft mir immer die folgende Meldung aus:
c2
{"error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"de-DE","value":"Der Parameter \"__metadata\" ist in der Methode \"GetById\" nicht vorhanden."}}}
0

Meine Methode sieht folgendermaßen aus:

string strSchadenAlsJson = "{ '__metadata': {'type':'SP.List'},'Title':'Neuer Wert'},";


HttpClient client = new HttpClient(new HttpClientHandler() { Credentials = UserCredentials });

client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("X-RequestDigest", GetFormDigest());
client.DefaultRequestHeaders.Add("X-HTTP-Method", "Merge");
client.DefaultRequestHeaders.Add("IF-MATCH", "*");
client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");

HttpContent content = new StringContent(strSchadenAlsJson);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
content.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("odata", "verbose"));

string URL = "https://MeineSharePoint-Seite/_api/web/lists(guid'57f1fb6c-1ec1-4200-94a6-1cc68807a97b')/Items(38)";
HttpResponseMessage response = await client.PostAsync(URL, content);

Hat jemand eine Idee?

Danke im voraus!

Gruß

Willi

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Jan. 2017 08:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, zum eigentlichen Problem kann ich nichts sagen, aber warum verwendest Du nicht das Client Object Model? Das abstrahiert das alles, man muß sich nicht mit den tatsächlichen Requests rumschlagen, sondern hat schöne Objekte zur Verfügung...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
9 Beiträge
Willi Mommsen Als Antwort am 20 Jan. 2017 10:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

Danke für deine Antwort!

Das ganze soll als UWP-App auf diverse Geräte und meines Wissens nach gibt es wohl ebenfalls diverse Probleme mit UWP und CSOM. Oder?

 

Gruß

Willi 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Jan. 2017 10:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Da fehlt mir (noch) die Erfahrung. Ich würde aber an Deiner Stelle versuchen, PnP einzubinden. Das bügelt noch einige kleinere Unzulänglichkeiten des Standard-CSOM aus. Einen Versuch ist es jedenfalls wert :-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
9 Beiträge
Willi Mommsen Als Antwort am 23 Jan. 2017 13:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

 

was ist den PnP? Plug'nPray? :)

 

Gruß

Willi

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 23 Jan. 2017 13:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

https://github.com/SharePoint/PnP

Patterns and Practices

Ohne Rang
9 Beiträge
Willi Mommsen Als Antwort am 23 Jan. 2017 21:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ahh! Danke!

 

Gruß

 

Willi