Je peux définir Request.Content-Type = ..., Request.Content-Length = ...
Comment définir Accept et Accept-Language?
Je veux télécharger un fichier (RFC 1867) et je dois créer une demande comme celle-ci:
POST /test-upload.php.xml HTTP/1.1 Hôte: example.com Agent utilisateur: Mozilla/5.0 (Windows NT 5.2; WOW64; version: 2.0.1) Gecko/20100101 Firefox /4.0.1 Accept: text/html, application/xhtml + xml, application/xml; q = 0,9, */*; q = 0,8 Accept-Language: tr-tr, tr; q = 0,8 , en-us; q = 0,5, en; q = 0,3 Encodage accepté: gzip, deflate Jeu de caractères accepté: ISO-8859-9, utf-8; q = 0,7, *; q = 0,7 Keep-Alive: 115 Connexion: Keep-Alive Content-Type: multipart/form-data; borne = --------------------------- 21724139663430 Contenu-Longueur: 56048
Jetez un oeil à Accepter la propriété :
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(myUri);
myHttpWebRequest.Accept="image/*";
HttpWebResponse myHttpWebResponse=
(HttpWebResponse)myHttpWebRequest.GetResponse();
Cet article MSDN montre comment ajouter des en-têtes personnalisés à votre demande:
//Get the headers associated with the request.
WebHeaderCollection myWebHeaderCollection = myHttpWebRequest.Headers;
//Add the Accept-Language header (for Danish) in the request.
myWebHeaderCollection.Add("Accept-Language:da");
//Include English in the Accept-Langauge header.
myWebHeaderCollection.Add("Accept-Language","en;q=0.8");
Lorsque vous souhaitez définir le type d'acceptation et le type de contenu, il suffit de transtyper la requête Web en HttpwebRequest.
var webreq= (HttpWebRequest)WebRequest.Create(requestUri);
webreq.Method = "POST";
webreq.Accept = "application/json";
webreq.ContentType = "application/json";
Vous devez vous assurer que vous tapez la requête pour transtyper la demande en (HttpWebRequest), où la propriété accept header est disponible.
Dans l'ancienne classe WebRequest, l'en-tête Accept n'est pas accessible.
Je dois confirmer après plusieurs tentatives ennuyeuses d’utiliser les en-têtes que le
La solution myWebHeaderCollection.Add("foo","bar");
fonctionne parfaitement.
si vous voulez définir la langue.
myWebHeaderCollection.Add("AcceptCharset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
myWebHeaderCollection.Add("TransferEncoding", "gzip,deflate");
Ne définit pas les valeurs cependant. Ce qui peut sembler une conclusion logique étant donné que le premier fonctionne.
Si vous utilisez HttpRequestMessage , définissez l'en-tête à l'aide de la méthode Headers.Add. Dans ton cas :
request.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");