HttpWebRequest 读取网站返回为中文成乱码请指导员

问题描述

publicstringGetHtml(stringurl,stringpostData,boolisPost,CookieContainercookieContainer){if(string.IsNullOrEmpty(postData)){returnGetHtml(url,cookieContainer);}Thread.Sleep(delay);currentTry++;try{byte[]byteRequest=Encoding.Default.GetBytes(postData);HttpWebRequesthttpWebRequest;httpWebRequest=(HttpWebRequest)HttpWebRequest.Create(url);httpWebRequest.CookieContainer=cookieContainer;httpWebRequest.ContentType=contentType;httpWebRequest.Referer=url;httpWebRequest.Accept=accept;httpWebRequest.UserAgent=userAgent;httpWebRequest.Method=isPost?"POST":"GET";httpWebRequest.ContentLength=byteRequest.Length;encode=Encoding.GetEncoding("GB2312");Streamstream=httpWebRequest.GetRequestStream();stream.Write(byteRequest,0,byteRequest.Length);stream.Close();HttpWebResponsehttpWebResponse;httpWebResponse=(HttpWebResponse)httpWebRequest.GetResponse();StreamresponseStream=httpWebResponse.GetResponseStream();StreamReaderstreamReader=newStreamReader(responseStream,encoding);stringhtml=streamReader.ReadToEnd();streamReader.Close();responseStream.Close();currentTry=0;returnhtml;}catch(Exceptione){Console.ForegroundColor=ConsoleColor.Red;Console.WriteLine(DateTime.Now.ToString("HH:mm:ss")+e.Message);Console.ForegroundColor=ConsoleColor.White;if(currentTry<=maxTry){GetHtml(url,postData,isPost,cookieContainer);}currentTry=0;returnstring.Empty;}}publicstaticstringLogin(stringloginEmail,stringloginPassword){stringloginUrl="http://www.222idc.com/user/userlogin.asp";stringpostData=string.Format("username={0}&password={1}",loginEmail,loginPassword);stringresult=httpHelper.GetHtml(loginUrl,postData,true,cookieContainer);returnresult;}HttpWebRequest读取网站返回为中文成乱码请指导员上以是我使用的代码,还是一个登录加cookieS记录的.Login为登录事件,可是返回result里的中文全是乱码了.请大虾修改指导员.

解决方案

解决方案二:
用Fiddler抓包看看,有可能返回的是Gzip压缩流。
解决方案三:
把StreamReaderstreamReader=newStreamReader(responseStream,encoding);这句的编码换成utf-8试试,如不行,就是如1楼所说的那样。
解决方案四:
问题解决,非常感谢楼上二位,是我的自己粗心了.问题出在encoding这个变量上.我设置错了.
解决方案五:
最近也在研究这个东西,想用WEB的去保存别的网站的登录操作怎么做?

时间: 2024-10-02 15:47:17

HttpWebRequest 读取网站返回为中文成乱码请指导员的相关文章

从文件中读取彝文在SWT中显示乱码,请高手帮忙解决,谢谢,----急急!!!!!

问题描述 现在做一个软件,其中有关于从文件中读取彝文并程序在SWT中显示的功能,现在从文件读取后显示是乱码,请高手指教一下,十分感谢!!! 解决方案 解决方案二:可以肯定是编程格式有问题,没看到你的代码,不好解答.解决方案三:你读的时候就用utf8格式就可以了解决方案四:应当是前后的编码格式有问题,你输出的时候以utf8格式输出解决方案五:Filef=newFile("E:\t.txt");InputStreamReaderread=newInputStreamReader(newFi

C# POST 发送XML(返回string中可能出现中文乱码问题)

/// <summary> /// C# POST 发送XML /// </summary> /// <param name="url">目标Url</param> /// <param name="strPost">要Post的字符串(数据)</param> /// <returns>服务器响应</returns> private string PostXml(stri

utf-8-Java 通过HttpURLConnection获取URL接口的返回数据中含有少数民族语言变成了乱码

问题描述 Java 通过HttpURLConnection获取URL接口的返回数据中含有少数民族语言变成了乱码 5C 各位大神private static String getJson(String url){ // String url = ""http://data1.cnr.cn/minzu_hanyuzhuan/phpencode.php?word=""+para; URL oldUrl; StringBuffer buffer = null; try {

javascrpit-js怎样将返回的json数据读取到s:select中

问题描述 js怎样将返回的json数据读取到s:select中 json数据 [{""inherit"":6majorID"":7majorName"":""交通工程系""}{""inherit"":6majorID"":9majorName"":""交通运输工程研究所"&quo

java-android读取设备返回byte数组解析问题

问题描述 android读取设备返回byte数组解析问题 android通过socket读取到一串数据,存在Byte数组中的值为 67 82 80 0 -52 -52 -52 -52 -52 -52,这个值如何转为java 字符串,我用了很多方法都有乱码,求了解的大神帮忙解惑 解决方案 乱码可以转码 百度java字符串解码 解决方案二: 通信双方统一下数据的编码方式,统一使用utf-8或者其他编码 解决方案三: System.out.println(new String(数组, "gbk&quo

使用 HttpWebRequest 向网站提交数据

转自:http://www.cnblogs.com/webman/archive/2006/11/17/564106.html HttpWebRequest 是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过 HTTP 协议和服务器交互.  HttpWebRequest 对 HTTP 协议进行了完整的封装,对 HTTP 协议中的 Header, Content, Cookie 都做了属性和方法的支持,很容易就能编写出一个模拟浏览器自动登录的程序.  程序使用 

Java读取、写入文件如何解决乱码问题_java

读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少

如何解决远程页面抓取中的乱码问题

解决|问题|页面 由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-8编码,操作上比较麻烦.经过反复比较,我找到了相对实用的解决方法. ff提供了overrideMimeType方法,可以指定返回值的编码,所以解决起来比较简单,只要把这个方法指向gb2312就可以了.对于IE,可以用vbs配合来作编码转换,用gb2utf8来转换接收到的二进制数据,其中利用到execScript方法来调用vbs的函数. [复

在Jsp程序读取或向DB写入数据乱码解决办法

js|程序|解决|数据 在Jsp程序读取或向DB写入数据乱码解决办法 在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号.这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题.以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了.1.在网页中输出中文.JAVA在网络传输中使用的编码是"ISO-8859