Ku mojemu zaskoczeniu, nie mogę zrobić niczego tak prostego jak to, co mogę powiedzieć, w .NET BCL:
byte[] response = Http.Post
(
url: "http://dork.com/service",
contentType: "application/x-www-form-urlencoded",
contentLength: 32,
content: "home=Cosby&favorite+flavor=flies"
);
Powyższy hipotetyczny kod tworzy HTTP POST z danymi i zwraca odpowiedź z Post
metody klasy statycznejHttp
.
Skoro nie mamy czegoś tak łatwego, jakie jest następne najlepsze rozwiązanie?
Jak wysłać HTTP POST z danymi ORAZ uzyskać treść odpowiedzi?
Odpowiedzi:
Potrzebne będą:
Jeśli nalegasz na użycie statycznej metody / klasy:
Następnie po prostu:
źródło
string result = System.Text.Encoding.UTF8.GetString(response)
. To jest pytanie, na które znalazłem odpowiedź.Korzystając z HttpClient: w zakresie projektowania aplikacji dla systemu Windows 8 natknąłem się na to.
źródło
.Result
zAsync
połączeń - korzystanieawait
aby zapewnić wątek UI nie zablokuje. Również prostynew[]
będzie działał tak samo jak Lista; Słownik może wyczyścić kod, ale ograniczy niektóre funkcje HTTP.Użyj WebRequest . Od Scott Hanselman :
źródło
źródło
Osobiście uważam, że najprostszym podejściem do zrobienia postu http i uzyskania odpowiedzi jest użycie klasy WebClient. Ta klasa ładnie streszcza szczegóły. Jest nawet pełny przykład kodu w dokumentacji MSDN.
http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx
W twoim przypadku potrzebujesz metody UploadData (). (Ponownie przykładowy kod znajduje się w dokumentacji)
http://msdn.microsoft.com/en-us/library/tdbbwh0a(VS.80).aspx
UploadString () prawdopodobnie również będzie działał i odciąży go o jeszcze jeden poziom.
http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadstring(VS.80).aspx
źródło
Wiem, że to stary wątek, ale mam nadzieję, że to komuś pomoże.
źródło
Biorąc pod uwagę, że inne odpowiedzi mają kilka lat, oto moje przemyślenia, które mogą być pomocne:
Najprostszy sposób
Bardziej praktyczny przykład
Często mamy do czynienia ze znanymi typami i JSON, więc możesz rozszerzyć ten pomysł o dowolną liczbę implementacji, takich jak:
Przykład, jak można to nazwać:
źródło
Możesz użyć czegoś takiego jak ten pseudo kod:
źródło