質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

RubyMine

RubyMineは、Ruby/Ruby on RailsベースのWebアプリケーション開発を行うためのIDEです。コードエディタやコードアシスタンス、グラフィカルなデバッガを搭載しており、様々なバージョン管理システムに対応しています。

Q&A

解決済

Rubyでプロキシにユーザー認証があるときのNet::HTTP.Proxyの利用方法

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

RubyMine

RubyMineは、Ruby/Ruby on RailsベースのWebアプリケーション開発を行うためのIDEです。コードエディタやコードアシスタンス、グラフィカルなデバッガを搭載しており、様々なバージョン管理システムに対応しています。

1回答

0グッド

0クリップ

660閲覧

投稿2018/04/22 10:30

プロキシサーバー接続にユーザー認証(ユーザー名とパスワード)が必要な場合のNet::HTTP.Proxyの使い方を教えて頂けませんでしょうか。

ユーザー認証が必要ない場合には、次のコードで問題なくプロキシ経由でアクセスができるのですが、
例えば、プロキシサーバーでのユーザー認証の、ユーザー名が”user123”、パスワードが”pass7777”の場合のコードの書き方がわかりません。

http://rurema.clear-code.com/version:2.5.0/query:Net%3A%3AHTTP.proxy/

に説明があるのですが、例がなく実際に現在のコードのどこに”user123”と”pass7777”を追加すれば良いのかがわかりません。
わかる方の回答をお待ちしています。宜しくお願いします。

ruby

1 uri = URI.parse("https://api.google.com") #接続先のURLは一例です 2 uri.path = '/products/service' 3 4 proxy = Net::HTTP::Proxy("123.123.123.12", 8800) #プロキシサーバーのIPとポートは一例です 5 https = proxy.new(uri.host, uri.port) 6 7 https.use_ssl = true 8 response = https.get uri.request_uri 9 puts response.body

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

ベストアンサー

日本語版ドキュメントclass Net::HTTPには記載は無いですが、英語版ドキュメントclass Net::HTTPとソースコード確認すると第3引数と第4引数にプロキシのユーザー名とパスワードを指定できるようです。proxy作成部分を次のようにしてみてください。

Ruby

1proxy = Net::HTTP::Proxy("123.123.123.12", 8800, "user123", "pass7777") # 第3と第4でユーザーとパスワード

古いバージョンでは対応していない場合がありますのでご注意ください。

投稿2018/04/22 11:18

編集2018/04/22 11:34
raccy

総合スコア21689

退会済みユーザー👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

退会済みユーザー

退会済みユーザー

2018/04/24 13:37

ご回答ありがとうございます。ご指摘頂いた方法でやってみたのですが、 Failed to open TCP connection to 1**.1**.2**.6*:8800 (No co nnection could be made because the target machine actively refused it. - connect(2) for "1**.1**.2**.6*" port 8800) (Errno::ECONNREFUSED) とエラーメッセージがでてしまい上手くいきません。。 Rubyは2.5.0です。
raccy

2018/04/24 13:43

Errno::ECONNREFUSED はTCPセッション自体が拒否られている場合のエラーメッセージです。プロキシサーバーへの接続そのものが失敗しているように見えます。プロキシサーバーのファイアウォールで止められていないか、プロキシサーバーでプロキシのサービスが立ち上がっていないかなどを確認してください。また、IPアドレスとポート番号が間違っていないかの確認と、ブラウザ等に設定した場合は、正常にアクセス可能かを確認してみてください。
退会済みユーザー

退会済みユーザー

2018/04/24 14:11

ご回答ありがとうございます。 おしゃっる通りプロキシサーバー側の問題でプロキシの設定を変更したら上手くつながりました。 大変助かりました。ありがとうございました!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

RubyMine

RubyMineは、Ruby/Ruby on RailsベースのWebアプリケーション開発を行うためのIDEです。コードエディタやコードアシスタンス、グラフィカルなデバッガを搭載しており、様々なバージョン管理システムに対応しています。