Muszę użyć „HTTP Post” z WebClientem, aby opublikować niektóre dane pod określonym adresem URL.
Teraz wiem, że można to osiągnąć za pomocą WebRequest, ale z kilku powodów chcę zamiast tego użyć WebClient. Czy to jest możliwe? Jeśli tak, to czy ktoś może mi pokazać jakiś przykład lub wskazać właściwy kierunek?
HttpRequestHeader.ContentType
członka wyliczenia tutaj w ten sposóbweb.Headers[HttpRequestHeader.ContentType]
: pWebClient
Dziedziczy poComponent
, który zawiera~Component() {Dispose(false);}
). Problem polega na tym, że śmieciarz może to zrobić dowolnie długo, ponieważ nie bierze pod uwagę niezarządzanych zasobów podczas podejmowania decyzji dotyczących zbierania. Zasoby o wysokiej wartości muszą zostać jak najszybciej oczyszczone. Na przykład pozostawienie otwartego niepotrzebnego uchwytu pliku może zablokować usunięcie pliku lub zapisanie go za pomocą innego kodu.Istnieje wbudowana metoda o nazwie UploadValues, która może wysyłać HTTP POST (lub dowolne inne metody HTTP) ORAZ obsługuje konstrukcję treści żądania (łączenie parametrów ze znakami „&” i unikanie znaków przez kodowanie adresu URL) w odpowiednim formacie danych:
źródło
Za pomocą
WebClient.UploadString
lubWebClient.UploadData
możesz łatwo wysłać dane do serwera POST. Pokażę przykład za pomocą UploadData, ponieważ UploadString jest używany w taki sam sposób jak DownloadString.więcej: http://www.daveamenta.com/2008-05/c-webclient-usage/
źródło
źródło
źródło
Używanie zwykłego
client.UploadString(adress, content);
zwykle działa dobrze, ale myślę, że należy pamiętać, żeWebException
zostanie wyrzucony, jeśli nie zostanie zwrócony kod statusu pomyślnego HTTP. Zwykle obsługuję to w ten sposób, aby wydrukować dowolny komunikat o wyjątku, który zwraca serwer zdalny:źródło
Za pomocą webapiclient z modelem wyślij serializację żądania parametru json.
PostModel.cs
WebApiClient.cs
Metoda dzwoniącego biznesu
źródło
Oto krótka odpowiedź:
źródło