zoukankan      html  css  js  c++  java
  • WebRequest 获取网页乱码

    问题:在用WebRequest获取网页源码时得到的源码是乱码。

    原因:1,编码不对

    解决办法:设置对应编码

    WebRequest request = WebRequest.Create(Url);
    WebResponse response = await request.GetResponseAsync();

    Stream stream = response.GetResponseStream();
    StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(coding));//这里的coding是页面的编码,可以用Ie右键查看编码。
    Result = reader.ReadToEnd();

    reader.Dispose();
    reader.Dispose();

    2,页面进行压缩了

    看看html的head,ContentEncoding是否是gzip如果是的话需要解压。//下面的代码是在winrt下的

          WebRequest request = WebRequest.Create(Url);
                    WebResponse response = await request.GetResponseAsync();
                    Debug.WriteLine(((HttpWebResponse)response).StatusDescription);
                    if (response.Headers.AllKeys.Contains("Content-Encoding") && response.Headers["Content-Encoding"].ToLower() == "gzip")//如果使用了GZip则先解压
                    {
                        using (System.IO.Stream streamReceive = response.GetResponseStream())
                        {
                            using (var zipStream =
                                new System.IO.Compression.GZipStream(streamReceive, System.IO.Compression.CompressionMode.Decompress))
                            {
                                using (StreamReader sr = new System.IO.StreamReader(zipStream, Encoding.GetEncoding(coding)))
                                {
                                    Result = sr.ReadToEnd();
                                }
                            }
                        }
                    }

  • 相关阅读:
    mysql的主从复制是如何实现的
    Innodb的索引
    PHP 五大运行模式
    nginx 与PHP之间是怎么交互的? Nginx与PHP通信的两种方式 unix socket和tcp socket
    识别身份证中的籍贯、出生年月、性别-http://www.cnblogs.com/huxj/archive/2010/08/01/1789843.html转!
    mysql大数据分表后查询
    19. HTTP协议二:HTTP请求与响应、常见状态码
    18. HTTP协议一:概述、原理、版本、请求方法
    17. 接口定义
    16. Django基础数据访问
  • 原文地址:https://www.cnblogs.com/wangjinming/p/3835366.html
Copyright © 2011-2022 走看看