Wie sende ich willkürliche JSON-Daten mit einem benutzerdefinierten Header, an einen Restserver?
-
22-12-2019 - |
Frage
tl; DR - Wie schicke ich eine JSON-Zeichenfolge mit einem AUTH-Header in einen Ruhestand? Ich habe 3 verschiedene Ansätze ausprobiert, die mit anonymen Typen arbeitet. Warum kann ich nicht anonyme Typen verwenden? Ich muss eine Variable namens "Gruppenname" einstellen, und ein Bindestrich ist kein gültiger C # -Kennung.
Ich muss JSON posten, bin aber nicht in der Lage, den Körper nicht zu bekommen, und den Inhaltstyp korrekt
function # 1 - arbeitet mit anonymenarten
Der Inhaltstyp und die Daten sind korrekt, aber ich möchte keine anonymen Typen verwenden. Ich möchte eine Zeichenfolge
verwenden generasacodicetagpre.
Inhaltstyp und Daten sind korrekt, wenn Anonymoustypes + postasjsonasync verwendet wird, aber ich möchte keine anonymen Typen verwenden.
generasacodicetagpre.function # 2 - funktioniert nicht wie erwartet
Nehmen Sie eine Zeichenfolge und legen Sie es in ein stringcontentes Objekt. Dies hat einen Nebeneffekt, um den Inhaltstyp zu ändern.
generasacodicetagpre.
Inhaltstyp ist falsch, wenn stringcontent + postasync
verwendet wird generasacodicetagpre.function # 3 - funktioniert nicht wie erwartet
Da ich weiß, dass PostAsJsonAsync
den ContentType richtig einstellt, verwenden Sie diese Methode. (funktioniert nicht)
Inhaltstyp ist korrekt, der Postkörper ist falsch, wenn der stringcontent + postasjsonasync
verwendet wird generasacodicetagpre.
Alles, was ich tun möchte, ist JSON als Zeichenfolge oder dynamisches Objekt zu senden, das zur Laufzeit definiert ist, auf einen Server, mit dem HTTP-Inhaltstyp korrekt und mit einem speziellen 'Auth-Token'-Header.
Jedes Beispiel, wenn nicht, wenn Webapi, wie beispielsweise Servicestack, oder etwas anderes cool ist.
Lösung
es ist Konstruktor des StringContent.Sieht so aus, dass Sie angemessene Kodierung und Mediatype angeben sollten
Andere Tipps
Sie können eine Instanz von httpcontent nicht direkt einrichten, da es sich um eine abstrakte Klasse handelt.Je nach Bedarf müssen Sie einen der Unterklassen verwenden.Höchstwahrscheinlich stringcontent, mit dem Sie den String-Wert der Antwort, die Kodierung und den Medientyp in den Konstruktor einstellen können: http://msdn.microsoft.com/en-us/library/system.net.http.stringcontent.aspx
Antwort von Wie richten Sie httpcontent für meinen httpclient postasync-zweiten Parameter ein?