博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpClient读取数据乱码的解决方案
阅读量:4327 次
发布时间:2019-06-06

本文共 1901 字,大约阅读时间需要 6 分钟。

博主是一个近十年的老书虫了,从高中那会儿就开始看网络小说。每天半天看晚上看啊,终于眼睛也近视了,成绩也下降了(。。。。好像说远了)

最近在追辰东的《圣墟》,最近写到精彩部分了,一直等更新。但是也不能一直开着浏览器刷新啊。。。。
于是乎,就发挥了咱们程序员自给自足的精神,写一个程序去监听,然后等又更新的时候,自动打开浏览器,然后就可以愉快的看书了。。

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

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

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

653862-20180102224753956-551593497.png

这啥玩意儿???

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

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.。。。。这下终于对了。。。。

653862-20180102225607909-1723039975.png

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

转载于:https://www.cnblogs.com/boxrice/p/8179741.html

你可能感兴趣的文章
“==”运算符与equals()
查看>>
单工、半双工和全双工的定义
查看>>
Hdu【线段树】基础题.cpp
查看>>
时钟系统
查看>>
BiTree
查看>>
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
ajax跨域,携带cookie
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>