如何设置Accept和Accept Language标头字段

本文关键字:Accept Language 字段 何设置 设置 | 更新日期: 2023-09-27 17:58:28

我可以设置Request.Content-Type=,Request.Content-Length=。。。

如何设置Accept和Accept Language?

我想上传一个文件(RFC 1867),需要创建一个这样的请求:

POST/test-upload.php.xml HTTP/1.1主持人:example.com用户代理:Mozilla/5.0(Windows NT 5.2;WOW64;rv:2.0.1)Gecko/20100101 Firefox/4.0.1接受:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8接受语言:tr tr,tr;q=0.8,en-us;q=0.5,en;q=0.3接受编码:gzip,deflate接受字符集:ISO-8859-9,utf-8;q=0.7,*;q=0.7保持活力:115连接:保持活动内容类型:多部分/表单数据;边界=-------------------------21724139663430内容长度:56048

如何设置Accept和Accept Language标头字段

看看Accept属性:

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

当您想要设置Accept类型和内容类型时,只需将webrequest转换为HttpwebRequest

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

您需要确保将请求类型强制转换为(HttpWebRequest),其中accept标头属性可用。

在旧的WebRequest类中,Accept标头不可访问。

经过几次烦人的尝试,我必须确认

myWebHeaderCollection.Add("foo","bar");解决方案运行良好。

如果要设置语言。

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

但是,不设置值。鉴于第一个结论有效,这似乎是一个合乎逻辑的结论。

如果使用HttpRequestMessage,请使用Headers.Add方法设置标头。在您的情况下:

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

在我有幸维护15年前的vb.NET 3.5代码的情况下,这个解决方法对我来说是成功的:

webReq = WebRequest.Create(apiHost)
CType(webReq, HttpWebRequest).Accept = "application/json"