[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]httpclient一个https调不通,连接挂起的问题

上一篇:[备忘]台式机上网卡的不行,重启路由器好了
下一篇:[备忘]java设置代理

添加日期:2020-6-27 0:36:16 快速返回   返回列表 阅读80次
httpclient写的httpUtil类,调用某个网站的https网址后,
请求发出后,没有响应。没有报错。

莫名其妙,抓包看了握手过程,没有问题。

---------------------
苦恼了几天,毫无思路。
---------------------
今天突然想到,何不用其他的工具试一试呢?
如果其他工具好使,证明是我程序的问题。
---------------------
跑linux下,用wget直接弄,也是没反应。
--------------------
用curl直接试也没反应,后来对照浏览器的header挨个试,
发现增加以下header就有反应了。


user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9


心想,有戏了


curl --tlsv1.2 --verbose --header "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" --header "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" --header "accept-encoding: gzip, deflate, br" --header "accept-language: zh-CN,zh;q=0.9" --header "Connection: keep-alive" "https://www.xxx.com/en/hk/"


------------------------
修改java代码,增加以上header,没反应,头大~
------------------------
查看抓包,发现发出请求时,多了一个header:
Connection: Keep-Alive
这个通常是没问题的,不过死马当活马医。
在curl里加了这个header,果然马上没反应了。
看来,这个就是罪魁祸首
后来发现,用Connection: keep-alive是有反应的(注意小写)
-------------------------
发现Connection这个header是httpclient自动加的,折腾半天去不掉。
尝试Connection:close也没反应。
-------------------------
无奈,不用httpclient了,用HttpUrlConnection自己写吧,
果然OK了。
再处理一下gzip解压,妥妥的~

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved