为什么带有WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY的WinHttpOpen绕过Charles Proxy?

时间:2019-04-14 13:04:15

标签: winapi charles-proxy winhttprequest

我正在尝试将WinHTTP与Charles代理一起使用。当我使用WINHTTP_ACCESS_TYPE_NAMED_PROXY选项和指向Charles的URL时,它将记录通过它的流量。当我使用WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY时,该连接有效,但Charles未记录该连接-它被绕过了。

问题是我在做什么错了?

最初,Charles使用其地址将Edge的代理设置配置为“手动”。我将其更改为自动,但无济于事。

我使用的电话是

HINTERNET session = WinHttpOpen(nullptr, WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, WINHTTP_FLAG_ASYNC);

会话获取有效值。

我希望流量通过Charles代理并被其记录。


找到答案:Charles设置是针对每个用户进行的,并且代码在系统用户进程中执行。每台机器进行设置即可解决问题。

感谢所有回答过的人,我错失了重点。

1 个答案:

答案 0 :(得分:1)

一旦使用WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY,程序将根据系统和每个用户的设置来决定使用哪个代理。因此,可能未在您的代理设置中配置正确的Charles代理URL。

在使用WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY之前,您应该指定Charles的代理URL。

  1. 单击开始菜单。
  2. 选择设置->网络和Internet->代理。
  3. 在手动代理设置中填写代理地址。