windows - 更改HTTP响应

时间:2017-05-15 19:08:43

标签: windows http

我有一台Windows 10计算机和一个程序,它向服务器(xxx.com又名x.x.x.x)发送一个请求。服务器响应,例如" false"。该程序读取该响应并基于该响应提供输出。我需要在本地(不在服务器上,仅限我)更改该值,例如," true"。我试过查尔斯,但它并不适用于我的软件(在浏览器中,同样的请求通过查尔斯给出了#34;真的")。这有什么问题?

1 个答案:

答案 0 :(得分:0)

Charles“无​​法正常运行”,因为您的程序发送的HTTP请求未被截获。 Charles可以自动配置浏览器的代理设置,这就是为什么在您的浏览器中“同样的请求通过Charles提供true”。

为了让Charles拦截您的程序的HTTP请求,需要配置反向代理:

步骤1.启动Charles,然后转到代理 - 反向代理......

步骤2.选中启用反向代理,然后点击添加

步骤3.配置反向代理:

Local port: 59110 // any unused local port
Remote host: xxx.com // the target server
Remote port: 80 // the port opened in target server

步骤4.在您的程序中,将所有HTTP请求发送到localhost:59110

通过这种方式,Charles可以拦截从您的程序发送的所有HTTP请求,并且您可以更改HTTP响应数据。

如果目标服务器提供HTTPS服务而不是HTTP,则需要完成一些额外的工作:

SSL-Step 1.在Charles中,转到代理 - SSL代理设置 - SSL代理

SSL-Step 2.检查启用SSL代理并单击添加

SSL-步骤3.配置SSL代理:

Host: xxx.com // the target server
Port: 443 // the SSL port opened in target server

SSL-步骤4(1)。转到帮助 - SSL代理 - 安装Charles Root证书。这将允许您的程序信任Charles自己生成的证书。

SSL-Step(2)。如果您不想安装Charles的根CA,则可以更改程序以防止出现证书错误。例如,在Node.js中,以下代码可以阻止程序拒绝未经授权的证书:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";