Подтвердить что ты не робот

Заголовки набора WebClient

Как я могу установить заголовок в классе webClient? Я пробовал:

client.Headers["Content-Type"] = "image/jpeg";

который выдает a WebException

Мой код:

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);
4b9b3361

Ответ 1

Если заголовок уже существует:

client.Headers.Set("Content-Type", "image/jpeg");

если его новый заголовок:

client.Headers.Add("Content-Type", "image/jpeg");

Кроме того, есть вероятность, что вы получаете сообщение об ошибке, потому что вы слишком поздно устанавливаете заголовки. Отправьте свое исключение, чтобы мы могли сообщить вам.

Обновление

Похоже, существуют некоторые странные ограничения в заголовке "Content-Type" с классом WebClient. Посмотрите на использование client.Download методы (DownloadData, DownloadFile и т.д.)

Посмотрите, использует ли метод "UploadFile" в веб-клиенте, а не делает это вручную. Он возвращает дочерний байт тела [].

Если у вас по-прежнему возникают проблемы с WebClient, попробуйте использовать простой старый HttpRequest/HttpWebRequest.

Ответ 2

Кажется, вы не можете установить Content-type с помощью метода WebClient.UploadValues. Вы можете установить Content-type с помощью метода WebClient.UploadData​​p >

Используйте что-то вроде

Client.Headers["Content-Type"] = "application/json";
Client.UploadData("http://www.imageshack.us/upload_api.php", "POST", Encoding.Default.GetBytes("{\"Data\": \"Test\"}"));

Ответ 3

Вы пробовали этот синтаксис: client.Headers.Add("Content-Type", "image/jpeg");

Какова трассировка вашего стека? В какой момент вы это устанавливаете? А какая версия IIS/OS вы используете под?

Ответ 4

Вы не можете изменить Content-Type, если используете метод UploadValues, он должен быть application/x-www-form-urlencoded, см. исходный код webclient введите описание изображения здесь