为直接请求使用单独的 Erlang httpc 配置文件
启动一个未配置代理的命名配置文件,在每次直接调用时传入其名称,并与拥有它的组件一起停止它。
保留共享的代理配置文件,并为直接工作创建一个单独的配置文件。在运行 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 的内部状态,也无需终止共享管理器,就能获得这条直接路由。