保留共享的代理配置文件,并为直接工作创建一个单独的配置文件。在运行 inets 的应用程序中:

{ok, ProfilePid} =
    inets:start(httpc, [{profile, direct_work}]).

新建的配置文件默认没有代理,除非应用程序加以设置。在请求中显式选择它:

httpc:request(
    get,
    {"http://example.com/", []},
    [],
    [],
    direct_work
).

后续调用中省略 direct_work 会再次选择默认配置文件。使用 httpc:get_options([proxy, https_proxy], direct_work) 检查此配置文件的路由选项。

该配置文件还拥有 cookie 和连接处理。将这一状态与其所属组件放在一起,并在工作负载结束时用 inets:stop(httpc, ProfilePid) 停止该配置文件。无需重写 httpc_manager 的内部状态,也无需终止共享管理器,就能获得这条直接路由。

相关文章