繁体   English   中英

如何在HttpWebRequest中更改UserAgent的编码?

[英]How to change encoding of UserAgent in HttpWebRequest?

今天,当我尝试使用HttpWebRequest发布请求时,我遇到了UserAgent编码的问题。

通常,UserAgent由拉丁字母和标点符号组成。 但是,我需要模拟iOS应用程序的Web请求,其UA包含一些Unicode(特别是中文)字符。

使用Fiddler获取原始请求,我发现该应用程序在其UA中使用了使用的Unicode编码。 我无法在C#中发布它; 我收到了这个错误:

您可能不会尝试在UserAgent中发送Unicode。 但这对我的项目非常重要。 现在我可以在没有UA字节的情况下模拟App的请求。

如何更改UA编码?

根据标准( rfc 2616(http / 1.1),sec 2.2,3.8.14.43rfc 2047(mime,part 3),sec 4,5 ),你不能使用任何其他编码而是iso-8859-1任何http头字段,如user-agent。

但是,您可以应用rfc 2047的编码方案将unicode字符串映射到8859-1 - 字符串; 简而言之,您使用charset标识符包装文本,并将unicode代码点替换为各自编码中八位位组序列的十六进制值。

例:

User-Agent: Million-€-Browser成为User-Agent: =?utf-8?q?Million-=e2=82=ac-Browser?=e2 82 ac是欧元符号的utf-8八位位组序列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM