C#调用WinHttp.WinHttpRequest.5.1 Get网页 乱码问题 本帖最后由 woshiklc 于 2014-01-07 16:28:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AdoStream["Charset"] = "gb2312"; 也是乱码。我试了 是否需要GZIP解压缩呢? public static string doGet(string Url) { try { HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url.ToString()); myRequest.ServicePoint.Expect100Continue = true; myRequest.Method = "GET"; myRequest.Timeout = 6000; myRequest.KeepAlive = true;//modify by yang myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"; myRequest.ContentType = "application/x-www-form-urlencoded"; HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding("utf-8")); string outdata = reader.ReadToEnd(); reader.Close(); return outdata; } catch (Exception ex) { return ex.Message; } }try也可以使用默认的SetRequestHeader("Accept-Encoding", "gzip,deflate,sdch");这个不要试试 这个我会用,只是最近在研究WinHttp.WinHttpRequest.5.1 多谢 有处理办法的 呵呵。 gzip么? 有处理办法的 呵呵。 gzip么?嗯 gzip request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8"); request.Headers.Add("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3"); request.CookieContainer = cookie; request.AllowAutoRedirect = true; response = (HttpWebResponse)request.GetResponse(); CkCollect = response.Cookies; LocationUrl = response.ResponseUri.ToString(); Stream st; st = response.GetResponseStream(); if (response.ContentEncoding.ToLower().Contains("gzip")) { st = new GZipStream(st, CompressionMode.Decompress, true); } StreamReader stReader = new StreamReader(st, Encoding.UTF8); content = stReader.ReadToEnd(); private string Html(string Url) { string strResult = ""; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string ce = response.ContentEncoding; Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding(GetChartset(Url)); if (ce.ToLower() == "gzip") { GZipStream gzip = new GZipStream(streamReceive, CompressionMode.Decompress); using (StreamReader reader = new StreamReader(gzip,encoding)) { strResult = reader.ReadToEnd(); } } } catch (Exception ex) { HttpContext.Current.Response.Write(ex.ToString()); } return strResult; } 楼主你用这个Adodb.Stream 是ASP的产物。。是COM+组件研究这做啥。。基本没人用这东西了。 C#的用10楼的代码就可以了,这是NET自带的解决方案比Adodb.Stream好很多。 关于C#中快速滚动图片的问题 想在ACCESS数据库中插入记录,这样能行吗?我的执行结果怎么数据库 获取指定字符串中间的字符串 用代码的方式编译项目,资源文件的嵌入问题 .net 中线程池问题 一个关于HttpWebRequest的问题 求SPRING.NET + iBATIS.NET +ASP.NET MVC的配置 Access 数据库 ole 字段数据如何显示到 picturebox .Replace 无效,这里该怎么写过滤 如何解决邮件服务器的安全认证问题 求助,一个正则表达式的小问题!! MVVM View 怎么组织
{
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url.ToString());
myRequest.ServicePoint.Expect100Continue = true;
myRequest.Method = "GET";
myRequest.Timeout = 6000;
myRequest.KeepAlive = true;//modify by yang
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)";
myRequest.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string outdata = reader.ReadToEnd();
reader.Close();
return outdata;
}
catch (Exception ex)
{
return ex.Message;
}
}try也可以使用默认的
SetRequestHeader("Accept-Encoding", "gzip,deflate,sdch");这个不要试试
request.Headers.Add("Accept-Charset", "GBK,utf-8;q=0.7,*;q=0.3");
request.CookieContainer = cookie;
request.AllowAutoRedirect = true;
response = (HttpWebResponse)request.GetResponse();
CkCollect = response.Cookies;
LocationUrl = response.ResponseUri.ToString();
Stream st;
st = response.GetResponseStream();
if (response.ContentEncoding.ToLower().Contains("gzip"))
{
st = new GZipStream(st, CompressionMode.Decompress, true);
}
StreamReader stReader = new StreamReader(st, Encoding.UTF8);
content = stReader.ReadToEnd();
{
string strResult = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string ce = response.ContentEncoding;
Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding(GetChartset(Url));
if (ce.ToLower() == "gzip")
{
GZipStream gzip = new GZipStream(streamReceive, CompressionMode.Decompress);
using (StreamReader reader = new StreamReader(gzip,encoding))
{
strResult = reader.ReadToEnd();
} }
}
catch (Exception ex) { HttpContext.Current.Response.Write(ex.ToString()); }
return strResult; }
楼主你用这个Adodb.Stream 是ASP的产物。。是COM+组件研究这做啥。。基本没人用这东西了。
C#的用10楼的代码就可以了,这是NET自带的解决方案比Adodb.Stream好很多。