既存の HTTPotion アプリケーションでは、エンドポイントをその ibrowse トランスポートに渡します:

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

~c リテラルはプロキシのホスト名に Erlang の charlist を渡します。ポートは整数です。HTTP プロキシ一覧にある HTTP エンドポイントなら、表示されている許可された公開リクエスト用にこの 2 つのフィールドを埋められます。プロキシのアカウントを追加する必要はありません。HTTPotion の README は、ibrowse のオプションが通常の Elixir バイナリ文字列ではなく charlist を使うと指摘しています。

外側の URL はあくまで宛先です。入れ子になった ibrowse のキーワードリストはトランスポートオプションの受け渡しであり、HTTP ヘッダーでもクエリパラメーターでもありません。

HTTPotion が返す Response または ErrorResponse は、アプリケーションの通常の流れで処理します。感嘆符なしのメソッドはエラーオブジェクトを返すことがあり、get! は操作が失敗すると例外を送出します。

これは HTTPotion の保守用リファレンスです。メンテナーはこのライブラリを非推奨としています。HTTPoison は別のトランスポートインターフェースを持つ別のライブラリであり、名前が似ているからといってその proxy 引数が同じオプションになるわけではありません。

関連記事