old_time
(旧时光)
1
问题描述:
环境
- windows 10 专业版
- Charles 4.6.1
场景
目前项目中通过Charles代理将移动端请求代理到PC机,然后通过修改PC机的hosts文件进公司的灰度环境。Charles中抓到的请求如下图,https://work.xxx.com/ 访问的远端地址是42.194.154.121:443,即我们在hosts文件中配置的地址
42.194.154.121 work.xxx.com
问题
因为不想不断的修改hosts文件,所以想借助Charles的MapRemote功能,实现请求转发的目的,MapRemote配置如下
Charles拦截到请求后进行了转发,如下图,但是最终和修改hosts文件得到的接口响应不一样
old_time
(旧时光)
2
帖中的问题已解决
解决方案
在Charles中配置MapRemote时勾选“Preserve host in hear fields”,默认是不勾选的
Preserve host in hear fields 即在转发时会带上原始请求的host请求头,如下图:
上图是勾选了的,下图是未勾选的,同样都进行了转发,但是上图带上了原始请求头的host,效果与修改hosts文件一致
疑问
目前猜测是后端进行了host校验?
我猜也是host进行校验了,或者你可以看看head里面有没有类似host或referer的参数,顺便改一下试试