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

Как установить поля заголовка Accept и Accept-Language?

Я могу установить Request.Content-Type =..., Request.Content-Length =...

Как установить Accept и Accept-Language?

Я хочу загрузить файл (RFC 1867) и создать такой запрос:

POST /test-upload.php.xml HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 5.2; WOW64; rv: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
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-9,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------21724139663430
Content-Length: 56048
4b9b3361

Ответ 1

Взгляните на Принять свойство:

HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(myUri);
myHttpWebRequest.Accept="image/*";    
HttpWebResponse myHttpWebResponse=
         (HttpWebResponse)myHttpWebRequest.GetResponse();

В этой статье MSDN показано, как добавить пользовательские заголовки к вашему запросу:

//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");

Ответ 2

Мне нужно подтвердить несколько раздражающих попыток использовать заголовки, чтобы

myWebHeaderCollection.Add("foo","bar"); решение работает отлично.

если вы хотите установить язык.

myWebHeaderCollection.Add("AcceptCharset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
myWebHeaderCollection.Add("TransferEncoding", "gzip,deflate");

Не устанавливает значения. Что может показаться логическим завершением, если первый работает.

Ответ 3

Если вы используете HttpRequestMessage, установите заголовок, используя метод Headers.Add. В вашем случае:

request.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

Ответ 4

Вы должны быть уверены, что введите тип запроса (HttpWebRequest), где доступно свойство заголовка accept.

В старом классе WebRequest заголовок Accept не доступен.

Ответ 5

Если вы хотите установить тип Accept и тип контента, просто переведите webrequest в HttpwebRequest

var webreq= (HttpWebRequest)WebRequest.Create(requestUri);
webreq.Method = "POST";
webreq.Accept = "application/json";
webreq.ContentType = "application/json";