HttpClient正确设置Host的姿势(不需要自定义DNS解析类)
来源:互联网 发布:淘宝客服经典回复技巧 编辑:程序博客网 时间:2024/05/17 07:37
因为有负载均衡的考虑,前端用了nginx反向代理。
两个域名虽然IP相同,但是如果不设置hosts文件,直接通过IP,是会返回404的。
所以需求就是这样,不设置hosts文件,而正确访问到对应的域名。
其实访问的IP是一样的,只是request header的Host不一样。
搜索到的解决方式:http://my.oschina.net/mikewei/blog/88606
这样有些不优雅,有点麻烦,而且我在httpClient3下,没找到对应的类。
只好debug跟踪源代码。
发现method.setRequestHeader("Host","a.xxxx.com")会被覆盖掉。
跟踪源代码发现,是HttpMethodBase类的addHostRequestHeader方法覆盖掉了。
如上,事情就好办了:
method.getParams().setVirtualHost("a.xxxx.com");
就OK了!
根本用不到自己实现一个DNS解析类。
关键代码就一行:getMethod.getParams().setVirtualHost("a.xxxx.com");
通过debug源代码找出的。。。
其实就是只要request header多一个Host:a.xxxx.com就行
补充:
想直接命中某个机器必须这样做。
否则直接用域名的方式,会负载均衡 不知道命中到哪台机器上(IP不同)。
0 0
- HttpClient正确设置Host的姿势(不需要自定义DNS解析类)
- 使用HttpClient设置自定义的DNS
- 自定义注解设置缓存有效期的正确姿势
- 设置正确的DNS
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment 全解析(2):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- Fragment全解析系列(二):正确的使用姿势
- java.net.URL 设置代理服务器和自定义Host头绕过DNS解析
- 使用自定义控件的正确姿势
- 【CryptoKitties源码解析】养猫的正确姿势!
- delphi —StrToDateTime函数在不同系统出现错误的解决方案
- 《编程之美》黑白球
- C++预编译头文件简介
- Kernel的构造与高斯核的构造
- 关联 - iOS
- HttpClient正确设置Host的姿势(不需要自定义DNS解析类)
- cat more 能够正常显示,结果vi打开文件出现乱码
- XP系统下VS2008+OPENCV+OPENNI关于KINECT开发环境搭建
- OCM_Session3_1_Create an RMAN Catalog
- JAVA堆栈的区别
- Ubuntu Eclipse配置OpenGL
- android 自定义ScrollView实现背景图片伸缩的实现代码及思路
- OCM_Session3_2_Using RMAN
- acegi security实践教程—资源角色信息存到放数据库