So che è troppo tempo per rispondere, ma solo come scopo informativo per i futuri lettori:
WebRequest
System.Object
System.MarshalByRefObject
System.Net.WebRequest
Il WebRequest
è una classe base astratta. Quindi in realtà non lo usi direttamente. Lo usi attraverso le sue classi derivate - HttpWebRequest
e FileWebRequest
.
Si utilizza il metodo Crea di WebRequest
per creare un'istanza di WebRequest
. GetResponseStream
ritorna data stream
.
Ci sono anche FileWebRequest
e FtpWebRequest
classi che inherit
provengono da WebRequest
. Normalmente, si usa WebRequest
, beh, per fare una richiesta e convertire il reso in HttpWebRequest
, FileWebRequest
o FtpWebRequest
, dipende dalla propria richiesta. Di seguito è riportato un esempio:
Esempio:
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
fornisce operazioni comuni sending
e receiving
dati da una risorsa identificata da a URI
. Semplicemente, è un'astrazione di livello superiore di HttpWebRequest
. Questo 'operazioni comuni' è ciò che differenzia WebClient
da HttpWebRequest
, come anche illustrato nell'esempio di seguito:
Esempio:
var _client = new WebClient();
var _stackContent = _client.DownloadString("http://stackverflow.com");
Ci sono anche DownloadData
e DownloadFile
operazioni in WebClient
istanza. Queste operazioni comuni semplificano anche il codice di ciò che normalmente faremmo HttpWebRequest
. Utilizzando HttpWebRequest
, dobbiamo ottenere la risposta della nostra richiesta, creare un'istanza StreamReader
per leggere la risposta e, infine, convertire il risultato in qualunque tipo ci aspettiamo. Con WebClient
, semplicemente chiamiamoDownloadData, DownloadFile or DownloadString
.
Tuttavia, tieni presente che WebClient.DownloadString
non considera ilencoding
la risorsa che stai richiedendo. Quindi, probabilmente finiresti per ricevere strani caratteri se non specifichi e codifichi.
NOTA: Fondamentalmente " WebClient accetta poche righe di codice rispetto a Webrequest "
ServicePointManager.Expect100Continue = false
, fa altre cose non standard e ha molte stranezze e idiosincrasie. Ho avviato RestSharp per aiutare a risolvere questi problemi.