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

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

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

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

Q&A

解決済

2回答

2555閲覧

Net::HTTP response_getでSSL通信したい

kazuyakazuya

総合スコア193

Ruby

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

0グッド

0クリップ

投稿2019/07/22 13:59

今回の目的はとにかくNet::HTTPでSSLで通信をできるようにする。
レスポンスのメッセージヘッダーを取得する

ruby

1require 'net/http' 2require 'uri' 3 uri = URI.parse("ここにURLを入れる") 4 http = Net::HTTP.get_response(uri.host,uri.path,80) 5 puts "HTTP/" + http.http_version 6 puts http.code 7 puts http.message 8 http.each_capitalized do |name, value| 9 puts name + ":" + value 10 end

このコードではHTTPでなら作動します。
このコードを変えてHTTPSでも正常に動くようにしたいです。
参考サイトリンク内容
上記のコードを以下のように変更しました。

ruby

1require 'net/http' 2require 'uri' 3 uri = URI.parse("ここにURLを入れる") 4 http = Net::HTTP.get_response(uri.host,uri.path,443) 5 http.use_ssl = true 6 http.verify_mode = OpenSSL::SSL::VERIFY_NONE 7 puts "HTTP/" + http.http_version 8 puts http.code 9 puts http.message 10 http.each_capitalized do |name, value| 11 puts name + ":" + value 12 end

ポートを443に変更して

ruby

1 http.use_ssl = true 2 http.verify_mode = OpenSSL::SSL::VERIFY_NONE

上記を追加しました。
実行すると・・・

cmd

1cliant3.rb: end of file reached (EOFError)

いろいろ試しましたがポート番号を443にした瞬間にこのエラーが発生するようになります。
もしかして、request_getメソッド自体が443に対応してないのでしょうか?

リンク内容
これは前回の質問ですが
とにかくSSLで通信ができるようにしないことには始まらないので。。。
まずどこら辺から直せばいいかが分からないので
参考になりそうなリンクややり方を教えてください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Ruby

1uri = URI.parse("ここにURLを入れる") 2http = Net::HTTP.get_response(uri)

で取れます。

投稿2019/07/22 14:15

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazuyakazuya

2019/07/22 14:39

ありがとうございます。 上記の方法を試しましたがだめでした。 構造から作り直します。
guest

0

ベストアンサー

Net::HTTP.get_responseでリクエストが行われますので、その後でhttp.use_ssl = trueとしても手遅れです。

Net::HTTP.newでリクエストを開く前のオブジェクトを作って、そこにuse_sslなどをセットしてから、startなりget_responseなりをおこなうという手順が必要なのではないかと思います。

投稿2019/07/22 14:08

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazuyakazuya

2019/07/22 14:40

ありがとうございます。 メソッドを駆使してやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問