Saya perlu menggunakan "HTTP Post" dengan WebClient untuk mengirim beberapa data ke URL spesifik yang saya miliki.
Sekarang, saya tahu ini bisa diselesaikan dengan WebRequest tetapi untuk beberapa alasan saya ingin menggunakan WebClient sebagai gantinya. Apakah itu mungkin? Jika demikian, dapatkah seseorang menunjukkan kepada saya contoh atau mengarahkan saya ke arah yang benar?
HttpRequestHeader.ContentType
anggota enumerasi di sini seperti iniweb.Headers[HttpRequestHeader.ContentType]
: pWebClient
mewarisi dariComponent
, yang berisi~Component() {Dispose(false);}
). Masalahnya adalah bahwa pemulung dapat mengambil waktu lama secara sewenang-wenang untuk melakukannya, karena itu tidak memperhitungkan sumber daya yang tidak dikelola ketika membuat keputusan pengumpulan. Sumber daya bernilai tinggi harus dibersihkan sesegera mungkin. Misalnya, membiarkan buka suatu pegangan file yang tidak dibutuhkan dapat memblokir file agar tidak dihapus atau ditulis oleh kode lain.Ada metode bawaan yang disebut UploadValues yang dapat mengirim HTTP POST (atau segala jenis metode HTTP) DAN menangani konstruksi badan permintaan (menyatukan parameter dengan "&" dan melepaskan karakter dengan pengkodean url) dalam format data formulir yang tepat:
sumber
Menggunakan
WebClient.UploadString
atauWebClient.UploadData
Anda dapat POST data ke server dengan mudah. Saya akan menunjukkan contoh menggunakan UploadData, karena UploadString digunakan dengan cara yang sama seperti DownloadString.lebih lanjut: http://www.daveamenta.com/2008-05/c-webclient-usage/
sumber
sumber
sumber
Menggunakan sederhana
client.UploadString(adress, content);
biasanya berfungsi dengan baik tetapi saya pikir harus diingat bahwaWebException
akan dilemparkan jika tidak kode status HTTP berhasil dikembalikan. Saya biasanya menanganinya seperti ini untuk mencetak pesan pengecualian yang dikembalikan oleh server jauh:sumber
Menggunakan webapiclient dengan model mengirim permintaan parameter json serialize.
PostModel.cs
WebApiClient.cs
Metode penelepon bisnis
sumber
Inilah jawaban yang tepat:
sumber