Je sais que c'est trop long pour répondre, mais juste à titre d'information pour les futurs lecteurs:
Demande Web
System.Object
System.MarshalByRefObject
System.Net.WebRequest
La WebRequestest une classe de base abstraite. Vous ne l'utilisez donc pas directement. Vous l'utilisez à travers ses classes dérivées - HttpWebRequestet FileWebRequest.
Vous utilisez la méthode Create de WebRequestpour créer une instance de WebRequest. GetResponseStreamrevient data stream.
Il y a aussi des classes FileWebRequestet des . Normalement, vous devez utiliser , eh bien, faire une demande et convertir le retour à l'une ou l' autre , ou , dépendent de votre demande. Voici un exemple:FtpWebRequestinheritWebRequestWebRequestHttpWebRequestFileWebRequestFtpWebRequest
Exemple:
var _request = (HttpWebRequest)WebRequest.Create("http://stackverflow.com");
var _response = (HttpWebResponse)_request.GetResponse();
WebClient
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Net.WebClient
WebClientfournit des opérations sendinget des receivingdonnées communes à une ressource identifiée par a URI. Simplement, c'est une abstraction de plus haut niveau de HttpWebRequest. Cette « opérations courantes » est ce qui différencie WebClientde HttpWebRequest, comme également indiqué dans l'exemple ci - dessous:
Exemple:
var _client = new WebClient();
var _stackContent = _client.DownloadString("http://stackverflow.com");
Il y a aussi DownloadDataet des DownloadFileopérations sous WebClientinstance. Ces opérations courantes simplifient également le code de ce que nous ferions normalement HttpWebRequest. En utilisant HttpWebRequest, nous devons obtenir la réponse de notre requête, instancier StreamReaderpour lire la réponse et enfin, convertir le résultat dans le type attendu. Avec WebClient, nous appelons simplement DownloadData, DownloadFile or DownloadString.
Cependant, gardez à l'esprit que WebClient.DownloadStringcela ne tient pas compte encodingde la ressource que vous demandez. Donc, vous finiriez probablement par recevoir des caractères étranges si vous ne spécifiez pas et n'encodez pas.
REMARQUE: Fondamentalement, " WebClient prend quelques lignes de code par rapport à Webrequest "
ServicePointManager.Expect100Continue = false, comme faire d'autres choses non standard et a de nombreuses bizarreries et particularités. J'ai lancé RestSharp pour aider à résoudre ces problèmes.