Vorbereitung Json-Objekt für die HttpClient-Post-Methode
Versuche zur Vorbereitung einer Json-Nutzlast auf eine Post-Methode. Der server ausfällt nicht analysiert meine Daten. ToString () - Methode auf, meine Werte würden nicht konvertieren zu Json korrekt, können Sie bitte deuten auf die richtige Art, dies zu tun.
var values = new Dictionary<string, string>
{
{"type", "a"}, {"card", "2"}
};
var data = new StringContent(values.ToSttring(), Encoding.UTF8, "application/json");
HttpClient client = new HttpClient();
var response = client.PostAsync(myUrl, data).Result;
using (HttpContent content = response.content)
{
result = response.content.ReadAsStringAsync().Result;
}
- Haben Sie gesehen, was
values.ToString()
generiert? - Blick in die
JsonConvert
Klasse. - was bedeutet die Signatur des server-Aufruf Aussehen?
- seine mit einer remote-api, haben keine chance, es zu betrachten, es ist ein payment-gateway akzeptiert nur Json
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie entweder manuell serialisieren Sie das Objekt zuerst mit
JsonConvert.SerializeObject
Oder abhängig von Ihrer Plattform, verwenden Sie die
PostAsJsonAsync
Erweiterung Methode aufHttpClient
.https://www.newtonsoft.com/json verwenden Sie diese.
es gibt schon viele ähnliche Themen.
Senden JSON per POST in C# und Empfangen der JSON zurückgegeben?
values.ToString()
wird nicht erstellen Sie ein gültiges JSON-formatierten string.Ich würde empfehlen die Verwendung einer JSON-parser, wie
Json.Net
oderLitJson
zu konvertieren Wörterbuch, in einen gültigen json-string. Diese Bibliotheken sind in der Lage Umwandlung von generischen Objekten in gültige JSON-strings mit Reflexion und schneller geht als manuell serialising in das JSON-format (obwohl dies möglich ist, wenn erforderlich).Bitte sehen Sie sich hier die JSON-string format definition (wenn Sie möchten, um manuell serialise die Objekte), und eine Liste von 3rd-party-Bibliotheken, die an der Unterseite: http://www.json.org/