对于现有的 HTTPotion 应用,把端点传给它的 ibrowse 传输:

response = HTTPotion.get(
  "http://www.example.com/",
  ibrowse: [proxy_host: ~c"proxy.example", proxy_port: 8080]
)

~c 字面量会为代理主机名提供 Erlang charlist。端口是整数。HTTP 代理列表中的 HTTP 端点可以为所示的获准公开请求填写这两个字段,而无需添加代理账户。HTTPotion 的 README 指出,ibrowse 选项通常使用 charlist,而不是普通的 Elixir 二进制字符串。

外层 URL 仍然是目标地址。嵌套的 ibrowse 关键字列表是传输选项的交接,它不是 HTTP 头,也不是查询参数。

按应用的常规流程处理 HTTPotion 返回的 Response 或 ErrorResponse。不带感叹号的方法可能返回错误对象,而 get! 在操作失败时会抛出异常。

这是 HTTPotion 的维护参考,其维护者已将其标记为弃用。HTTPoison 是另一个库,具有不同的传输接口;不能仅因为名称相似就认为它的 proxy 参数是同一个选项。

相关文章