zoukankan      html  css  js  c++  java
  • HttpClient读取数据乱码的解决方案

    博主是一个近十年的老书虫了,从高中那会儿就开始看网络小说。每天半天看晚上看啊,终于眼睛也近视了,成绩也下降了(。。。。好像说远了)
    最近在追辰东的《圣墟》,最近写到精彩部分了,一直等更新。但是也不能一直开着浏览器刷新啊。。。。
    于是乎,就发挥了咱们程序员自给自足的精神,写一个程序去监听,然后等又更新的时候,自动打开浏览器,然后就可以愉快的看书了。。

    -说干就干,打开VS2017,新建一个。。。。。。随便啥项目,然后写入

    HttpClient httpClient = new HttpClient();
                   
    var message = await httpClient.GetAsync(a);
                   
    var html = await message.Content.ReadAsStringAsync();
    

    -然后习惯性的Debug看一下html的值。。。。我的天。。。。

    这啥玩意儿???

    -然后我以为是编码问题,于是乎我又加上编码

    var contentType = message.Content.Headers.ContentType;
    if (string.IsNullOrEmpty(contentType.CharSet))
    {
            contentType.CharSet = "utf-8";
    }
    

    -然后结果还是一样啊。。。。。我的天,难道这破网站有啥反爬虫机制???
    -于是我又分析浏览器的请求,把请求头给加上

    httpClient.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    httpClient.DefaultRequestHeaders.Referrer = new Uri("http://m.gxwztv.com/");
    httpClient.DefaultRequestHeaders.Add("Cookie", "cids_AC=92542; cids_AC3=12743; cids_NU=12533; ras=41901%2C2121%2C12743%2C92542; cids_AC1=2121%2C41901; cv=5; fs=16; which=2");
    httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1");
    httpClient.DefaultRequestHeaders.Add("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6");
    httpClient.DefaultRequestHeaders.Add("Connection", "keep-alive");
    httpClient.DefaultRequestHeaders.Add("DNT", "1");
    httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate, sdch");
    

    这下终于对了把???然后F5运行。。。我的天,还是不对。。。。

    -然后我又瞎找了十来分钟原因,最后瞟到上面那行代码。。。。对!没错,就是那个Gzip。。。。我想会不会是要解压啊。。。web程序员的我,平时这些都是浏览器帮我搞定了啊,我哪儿知道这些啊。
    -于是又翻开万能的MSDN。。。找httclient解压Gzip的api。。。。

    var handler = new HttpClientHandler()
    {
           AutomaticDecompression = DecompressionMethods.GZip
    };
    HttpClient httpClient = new HttpClient(handler);
    

    然后就这样,然后再次F5.。。。。这下终于对了。。。。

    继续写吧,争取再23.30之前写完这个小工具。。。。

  • 相关阅读:
    Nodejs-原型链污染
    dpwwn-02靶机渗透
    dpwwn-01靶机渗透
    Bulldog1靶机渗透
    php+html实现用户登录退出
    DC4靶机
    vulnhub-Os-hackNos-3
    Linux系统解析XML中文乱问题
    idea添加database
    PL/SQL学习笔记
  • 原文地址:https://www.cnblogs.com/boxrice/p/8179741.html
Copyright © 2011-2022 走看看