nodejにはオプションlocalAddress(ネットワーク接続用にバインドするローカルインターフェイス)を持つhttp.request(options [、callback])があります。これはかなりうまくいっています。 Erlangでこれをどのように実装できますか?今私は要求にibrowseを使用しますが、これは制約ではありません。私はerlangのプレーンなhttpがどのように動作するのかを知る必要があると思うが、これに直面しているかもしれない。erlangはip(またはインターフェイス)にhttpクエリをバインドします
1
A
答えて
1
Erlangの基本TCPには、特定のインターフェイス(またはソケットタイプなど)を宣言できるgen_tcp:connect/3,4のオプションが用意されています。
私はいくつかのリモートホストに接続する場合:私は、接続のローカル側は、このマシンの192.168.5.23上の特定のアドレス(から発信したい場合は
{ok, Socket} = gen_tcp:connect(Host, Port, [])
:ポートコールは次のようになります私にできることwlan0、192.168.7.67は、例えば、eth0のですが)です:
{ok, Socket} = gen_tcp:connect(Host, Port, [{ifaddr, {192,168,5,23}}])
私は特定のポートから接続したい場合、私はポートオプションを追加します。
Options = [{ifaddr, {192, 168, 5, 23}}, {port, 11311}],
{ok, Socket} = gen_tcp:connect(Host, Port, Options),
これは単なるバニラのTCPです。 ErlangにHTTP/1.1クライアントを書くのはかなり簡単で、何をしたいかによっては理想的かもしれません。
httpcと呼ばれるビルトインのHTTPクライアントもあります(gunとhackneyのように、もう少し機能的で清潔なものもあります)。同様の議論を使用して、これらはすべてmake requests同じconnect optionsと同様に使用する非常に簡単です特別httpc:set_options/1,2の利用可能性を含め、gen_tcpします
ok = inets:start(),
ok = httpc:set_options([{ip, {192, 168, 5, 23}}, {port, 11311}]),
{ok, Response} = httpc:request("http://zxq9.com/archives/1311"),
うまくいけば、これはあなたが始めるために十分な情報があります。
関連する問題
- 1. IPリクエスト(httpsまたはhttp)をdomine(https)にリダイレクトします
- 2. Erlang HTTPクライアント:inetsまたはibrowseまたは...?
- 3. Dockerは0.0.0.0ではなくipにバインドします
- 4. WildFly 10 Jgroupsは常にlocalhostインターフェイスにバインドします
- 5. Docker ContainerへのHTTPコールはIPをDocker IDにリダイレクトします
- 6. Erlangのは、私はErlangで単純なサーバーアプリケーションを作成する外部IPアドレス
- 7. インターフェイスまたは拡張インターフェイスの配列を返します
- 8. クライアントソケットをipにバインドすることはできますか?
- 9. Erlang corbaチュートリアルまたはサンプル?
- 10. Angular2はIFrameにhttp応答をバインドします
- 11. HTTP :: RequestはIPv6インターフェイスを使用しています
- 12. インターフェイスのバインドが機能しません
- 13. Nginxは:スキップHTTP基本認証IPまたは要求ヘッダー
- 14. DHCPサーバーはホットプラグ可能なインターフェイスにバインドされています
- 15. ノードjs異なるインターフェースまたはIPアドレスへのバインド要求
- 16. PythonソケットはどのIPにもバインドできますか?
- 17. Flex Searchインターフェイス:XMLまたはクエリDBを読み込み
- 18. 静的IPを使用したHTTPリダイレクトのサービスはありますか?
- 19. Laravel 5 - インターフェイスをバインドできません
- 20. サブドメインにipをバインドする
- 21. 角4はtypescriptモデルへのHTTP応答をバインドします
- 22. Erlangについてhttpプロキシ
- 23. エンドポイント(特定のIP)をMSXMLリクエストにバインドしますか?
- 24. Glassfishを特定のIPにバインドしますか?
- 25. NGINXはIPアドレスに関係なく特定のネットワークインターフェイスにバインドします
- 26. フラグメンテーションはIPまたはイーサネットMTUに依存しますか
- 27. 商用システムの構築:純粋なErlangまたはErlang/OTP?
- 28. Erlang 17 HTTP SOAPサービス
- 29. SSHがプライベートIPにバインドされたEC2に公開IPではなく
- 30. doctrineはクエリにパラメータをバインドしません
徹底的な回答ありがとうございます! –