Saya tahu terlalu lama untuk menjawab tetapi hanya sebagai tujuan informasi untuk pembaca masa depan:
WebRequest
System.Object
System.MarshalByRefObject
System.Net.WebRequest
Ini WebRequest
adalah kelas dasar abstrak. Jadi Anda sebenarnya tidak menggunakannya secara langsung. Anda menggunakannya melalui kelas turunannya - HttpWebRequest
dan FileWebRequest
.
Anda menggunakan metode Buat WebRequest
untuk membuat turunan dari WebRequest
. GetResponseStream
kembali data stream
.
Ada juga FileWebRequest
dan FtpWebRequest
kelas yang inherit
dari WebRequest
. Biasanya, Anda akan menggunakan WebRequest
untuk, baik, membuat permintaan dan mengonversi pengembalian menjadi HttpWebRequest
, FileWebRequest
atau 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
WebClient
menyediakan operasi umum ke sending
dan receiving
data dari sumber daya yang diidentifikasi oleh a URI
. Sederhananya, ini adalah abstraksi level yang lebih tinggi HttpWebRequest
. 'Operasi umum' ini adalah yang membedakan WebClient
dari HttpWebRequest
, seperti juga ditunjukkan dalam sampel di bawah ini:
Contoh:
var _client = new WebClient();
var _stackContent = _client.DownloadString("http://stackverflow.com");
Ada juga DownloadData
dan DownloadFile
operasi dalam WebClient
contoh. Operasi umum ini juga menyederhanakan kode dari apa yang biasanya kita lakukan HttpWebRequest
. Dengan menggunakan HttpWebRequest
, kita harus mendapatkan respons dari permintaan kita, instantiate StreamReader
untuk 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.DownloadString
tidak mempertimbangkan encoding
sumber 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.