Zu meiner Überraschung kann ich in der .NET BCL nichts annähernd so Einfaches tun, wie ich sagen kann:
byte[] response = Http.Post
(
url: "http://dork.com/service",
contentType: "application/x-www-form-urlencoded",
contentLength: 32,
content: "home=Cosby&favorite+flavor=flies"
);
Dieser obige hypothetische Code erstellt einen HTTP-POST mit Daten und gibt die Antwort einer Post
Methode für eine statische Klasse zurück Http
.
Was ist die nächstbeste Lösung, da wir auf etwas so Einfaches verzichten müssen?
Wie sende ich einen HTTP-POST mit Daten UND erhalte den Inhalt der Antwort?
Antworten:
Sie benötigen Folgendes:
Wenn Sie darauf bestehen, eine statische Methode / Klasse zu verwenden:
Dann einfach:
quelle
string result = System.Text.Encoding.UTF8.GetString(response)
. Dies ist die Frage, auf die ich die Antwort gefunden habe.Verwenden von HttpClient: Bei der Entwicklung von Windows 8-Apps bin ich darauf gestoßen.
quelle
.Result
mitAsync
Aufrufen verwenden sollten - verwendenawait
Sie diese Option, um sicherzustellen, dass Ihr UI-Thread nicht blockiert. Auch eine einfachenew[]
wird genauso funktionieren wie die Liste; Dictionary bereinigt möglicherweise den Code, reduziert jedoch einige HTTP-Funktionen.Verwenden Sie WebRequest . Von Scott Hanselman :
quelle
quelle
Persönlich denke ich, dass der einfachste Ansatz, einen http-Beitrag zu erstellen und die Antwort zu erhalten, die Verwendung der WebClient-Klasse ist. Diese Klasse abstrahiert die Details. Es gibt sogar ein vollständiges Codebeispiel in der MSDN-Dokumentation.
http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx
In Ihrem Fall möchten Sie die UploadData () -Methode. (Auch hier ist ein Codebeispiel in der Dokumentation enthalten.)
http://msdn.microsoft.com/en-us/library/tdbbwh0a(VS.80).aspx
UploadString () wird wahrscheinlich auch funktionieren und es wird eine weitere Ebene abstrahiert.
http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadstring(VS.80).aspx
quelle
Ich weiß, dass dies ein alter Thread ist, aber ich hoffe, er hilft jemandem.
quelle
Angesichts der Tatsache, dass andere Antworten einige Jahre alt sind, sind hier meine Gedanken, die hilfreich sein können:
Einfachster Weg
Ein praktischeres Beispiel
Oft haben wir es mit bekannten Typen und JSON zu tun, sodass Sie diese Idee mit einer beliebigen Anzahl von Implementierungen weiter ausbauen können, z.
Ein Beispiel, wie dies genannt werden könnte:
quelle
Sie können so etwas wie diesen Pseudocode verwenden:
quelle