Saya tahu terlalu lama untuk menjawab tetapi hanya sebagai tujuan informasi untuk pembaca masa depan:
WebRequest
System.Object
System.MarshalByRefObject
System.Net.WebRequest
Ini WebRequestadalah kelas dasar abstrak. Jadi Anda sebenarnya tidak menggunakannya secara langsung. Anda menggunakannya melalui kelas turunannya - HttpWebRequestdan FileWebRequest.
Anda menggunakan metode Buat WebRequestuntuk membuat turunan dari WebRequest. GetResponseStreamkembali data stream.
Ada juga FileWebRequestdan FtpWebRequestkelas yang inheritdari WebRequest. Biasanya, Anda akan menggunakan WebRequestuntuk, baik, membuat permintaan dan mengonversi pengembalian menjadi HttpWebRequest, FileWebRequestatau FtpWebRequest, tergantung pada permintaan Anda. Di bawah ini adalah contohnya:
Contoh:
var _request = (HttpWebRequest)WebRequest.Create("http://stackverflow.com");
var _response = (HttpWebResponse)_request.GetResponse();
WebClient
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Net.WebClient
WebClientmenyediakan operasi umum ke sendingdan receivingdata dari sumber daya yang diidentifikasi oleh a URI. Sederhananya, ini adalah abstraksi level yang lebih tinggi HttpWebRequest. 'Operasi umum' ini adalah yang membedakan WebClientdari HttpWebRequest, seperti juga ditunjukkan dalam sampel di bawah ini:
Contoh:
var _client = new WebClient();
var _stackContent = _client.DownloadString("http://stackverflow.com");
Ada juga DownloadDatadan DownloadFileoperasi dalam WebClientcontoh. Operasi umum ini juga menyederhanakan kode dari apa yang biasanya kita lakukan HttpWebRequest. Dengan menggunakan HttpWebRequest, kita harus mendapatkan respons dari permintaan kita, instantiate StreamReaderuntuk membaca respons dan akhirnya, mengubah hasilnya menjadi tipe apa pun yang kita harapkan. Dengan WebClient, kami cukup menelepon DownloadData, DownloadFile or DownloadString.
Namun, perlu diingat bahwa WebClient.DownloadStringtidak mempertimbangkan encodingsumber daya yang Anda minta. Jadi, Anda mungkin pada akhirnya akan menerima karakter aneh jika Anda tidak menentukan dan menyandikan.
CATATAN: Pada dasarnya " WebClient mengambil beberapa baris kode dibandingkan dengan Webrequest "
ServicePointManager.Expect100Continue = false, melakukan hal-hal non-standar lainnya dan memiliki banyak keanehan dan kekhasan. Saya mulai RestSharp untuk membantu mengatasi masalah-masalah itu.