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 WebRequest
est une classe de base abstraite. Vous ne l'utilisez donc pas directement. Vous l'utilisez à travers ses classes dérivées - HttpWebRequest
et FileWebRequest
.
Vous utilisez la méthode Create de WebRequest
pour créer une instance de WebRequest
. GetResponseStream
revient data stream
.
Il y a aussi des classes FileWebRequest
et 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:FtpWebRequest
inherit
WebRequest
WebRequest
HttpWebRequest
FileWebRequest
FtpWebRequest
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
WebClient
fournit des opérations sending
et des receiving
donné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 WebClient
de 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 DownloadData
et des DownloadFile
opérations sous WebClient
instance. 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 StreamReader
pour 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.DownloadString
cela ne tient pas compte encoding
de 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.