问题描述
UA里一般没有中文,但是有了的话就出问题了HttpWebRequestreq=HttpWebRequest.Create("http://aaabbbccc.com")asHttpWebRequest;req.UserAgent="测试";req.Method="POST";在调用请求后,抓包分析Head里的UserAgent编码不是Unicode,在Fiddler里显示是乱码现在项目需求是精确模拟一个请求,原请求在UA里夹杂了中文,抓包后发现他的编码Unicode,.net下不知道是什么编码的,这样用HttpWebRequest调用后,汉字部分的bytes不一样研究了半天也不知道该如何改这个,请各路大神帮帮忙
解决方案
解决方案二:
从未听说过UserAgent里面出现中文的先例让我看看这个奇葩的网址
解决方案三:
引用1楼的回复:
从未听说过UserAgent里面出现中文的先例让我看看这个奇葩的网址
是移动应用的,我也是头一次见,用中文描述把他应用名字和版本号等内容发给服务器
解决方案四:
TrystringuserAgent="测试";byte[]buffer=Encoding.GetEncoding("utf-8").GetBytes(userAgent);stringstr="";foreach(bytebinbuffer)str+=string.Format("%{0:X}",b);req.UserAgent=str;
解决方案五:
引用3楼的回复:
TryC#codestringuserAgent="测试";byte[]buffer=Encoding.GetEncoding("utf-8").GetBytes(userAgent);stringstr="";foreach(bytebinbuffer)str+=string.Forma……
不行抓出来是User-Agent:%E6%B5%8B%E8%AF%95
解决方案六:
一般发送请求都是编码之后,接收方也会有相应的解码,比如汉字等,请求中应该是编码之后的,如%E6%B5%8B%E8%AF%95
解决方案七:
引用5楼的回复:
一般发送请求都是编码之后,接收方也会有相应的解码,比如汉字等,请求中应该是编码之后的,如%E6%B5%8B%E8%AF%95
你这种方法的确有用,相当于用UA发送密文,发前encode,服务端收到后decode,但是不能满足我的要求我要的仅仅是HTTP请求里的UA部分的汉字编码是Unicode的,这样才能跟我要模仿的请求一致,而现在.net里发过去的HTTP请求包里UA的描述不是用Unicode编的码
解决方案八:
按Unicode编码后发送可以么byte[]buffer=Encoding.Unicode.GetBytes(userAgent);
解决方案九:
引用7楼的回复:
按Unicode编码后发送可以么C#codebyte[]buffer=Encoding.Unicode.GetBytes(userAgent);
一样,还是%开头的已编码明文
解决方案十:
这个问题怎么解决的同求