如何设置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属性:
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"