Ich habe eine Anfrage (die an einen APIM-Endpunkt geht). Von Postman aus läuft der Test einwandfrei, aber in meinem Code schlägt er mit 400 fehl. Ich habe mir die Anfragen in Fiddler angesehen und der einzige Unterschied ist dieser:
Code: Select all
// This works
Content-Type: application/json
// This gives a 400
Content-Type: application/json; charset=utf-8
APIM soll standardmäßig UTF-8 verwenden, daher verstehe ich das nicht. Außerdem scheint es im C#-Code keine Möglichkeit zu geben, das erste zu erzeugen. Wenn ich versuche, den Header direkt hinzuzufügen, wird mir angezeigt, dass ich ihn als Teil der Inhaltszeichenfolge hinzufügen muss. Also ich habe das:
Code: Select all
requestMessage.Content = new StringContent(content, Encoding.UTF8, "application/json");
Dies erzeugt den zweiten Content-Type-Header. Es scheint keine Überlastung der StringContent-Klasse zu geben, die es mir
ermöglichen würde, die erste Version zu erstellen (ohne die Codierung anzugeben).
Ich stecke fest. Es scheint ein wirklich einfaches Problem zu sein, aber ich sehe keine Möglichkeit, durch den gesamten „Hilfs“-Code zu kommen, den Microsoft eingerichtet hat, um das zu bekommen, was ich brauche.
Soweit es darauf ankommt, verwende ich .net8.
Irgendwelche Vorschläge?