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