zoukankan      html  css  js  c++  java
  • c#访问http接口的"编码"问题

       记一次访问http数据接口的爬坑经历,一般访问一个http接口。

    无非就是这么几行代码:

      

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("url");
                         HttpWebResponse response = (HttpWebResponse)request.GetResponse();
             
      
                System.IO.StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));//设置响应编码,乱码的话
                Console.Write(sr.ReadToEnd());
                sr.Close();
                response.Close();

    可是这次,死话乱码。PostMan下正常的。。在浏览器中直接访问,设置编码为utf-8b也是可以正常显示的。。用c#后台代码测试了各种编码都以无效,告终。。

    查看响应头:

    Content-Encoding gzip。。。。刚开始被我略过了。。后来搜乱码google到了博客园的博问。

    更新代码如下:

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("url");
             
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
               //先把响应流以gzip形式解码,然后再读取。结果success.......
                Stream stm = new GZipStream(response.GetResponseStream(),CompressionMode.Decompress);
                
          
                System.IO.StreamReader sr = new StreamReader(stm, System.Text.Encoding.GetEncoding("utf-8"));
                Console.Write(sr.ReadToEnd());
                sr.Close();
                response.Close();
  • 相关阅读:
    小黄衫获奖感言
    原型设计
    20210326编程作业
    阅读任务
    准备工作
    cmd命令行批量修改文件名后缀
    【智能算法】模拟退火算法
    【智能算法】粒子群寻优算法
    【并行计算】基于OpenMP的并行编程
    Python科学计算——前期准备
  • 原文地址:https://www.cnblogs.com/gaocong/p/6098532.html
Copyright © 2011-2022 走看看