【问题标题】:Why does WinHttpOpen with WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY bypasses Charles Proxy?为什么带有 WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY 的 WinHttpOpen 会绕过 Charles Proxy?
【发布时间】:2019-04-14 13:04:15
【问题描述】:

我正在尝试将 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 设置是按用户进行的,并且代码在系统用户进程中执行。对每台机器进行设置解决了这个问题。

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

【问题讨论】:

  • Windows 版本?
  • 在 VirtualBox 中运行的 Windows 10 企业版。如果重要的话,Charles v4.2.8
  • 如果你将它设置为同步会发生什么:HINTERNET session = WinHttpOpen(nullptr, WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, NULL);

标签: winapi charles-proxy winhttprequest


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回复。 Charles 已自动填写手动代理设置,将“使用代理服务器”设置为打开,并将地址设置为 http=127.0.0.1:8888;https=127.0.0.1:8888 尽管如此,Charles 并没有记录来自我的应用程序的流量当我使用 WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY
猜你喜欢
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 2021-08-29
  • 2017-06-20
  • 2021-07-09
  • 2021-05-03
  • 2020-12-19
  • 1970-01-01
相关资源
最近更新 更多