Comment définir un en-tête dans la classe webClient
? J'ai essayé:
client.Headers["Content-Type"] = "image/jpeg";
qui jette une WebException
Mon code:
WebClient client = new WebClient();
client.Headers.Set("Content-Type", "image/png");
client.Headers.Set("Content-Length", length);
client.Headers.Add("Slug", name);
NameValueCollection nvc = new NameValueCollection();
nvc.Add("file", FileContents);
Byte[] data = client.UploadValues(url, nvc);
string res = Encoding.ASCII.GetString(data);
Response.Write(res);
Si l'en-tête existe déjà:
client.Headers.Set("Content-Type", "image/jpeg");
si c'est un nouvel en-tête:
client.Headers.Add("Content-Type", "image/jpeg");
En outre, il est possible que vous obteniez une erreur car vous essayez de définir les en-têtes trop tard. Postez votre exception pour que nous puissions vous informer.
Mettre à jour
On dirait qu'il existe des restrictions étranges sur l'en-tête "Content-Type" avec la classe WebClient. Cherchez à utiliser les méthodes client.Download (DownloadData, DownloadFile, etc ...)
Vérifiez si l'utilisation de la méthode "UploadFile" sur le client Web fonctionne plutôt que manuellement. Il retourne l'octet de corps de respose [].
Si vous continuez à avoir des problèmes avec WebClient, essayez simplement d'utiliser un ancien ancien HttpRequest/HttpWebRequest.
Il semble que vous ne puissiez pas définir Content-type avec la méthode WebClient.UploadValues. Vous pouvez définir Content-type avec la méthode WebClient.UploadData
Utilisez quelque chose comme
Client.Headers["Content-Type"] = "application/json";
Client.UploadData("http://www.imageshack.us/upload_api.php", "POST", Encoding.Default.GetBytes("{\"Data\": \"Test\"}"));
Avez-vous essayé cette syntaxe: client.Headers.Add("Content-Type", "image/jpeg");
Quelle est votre trace de pile? À quel moment définissez-vous cela? Et sous quelle version de IIS/OS utilisez-vous?