前回の質問とほぼ
変わらないです。
前回はHTTPSのサイトに対して生のHTTPを送っていることが原因でだめだったみたいなので
今回はHTTPのサイトにリクエストを送っています。
ruby
1require 'socket' 2post = TCPSocket.open("www.metro.tokyo.jp",80) 3 4 post.write('GET / HTTP/1.1(CR+LF) 5 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3(CR+LF) 6 Accept-Encoding: gzip, deflate(CR+LF) 7 Accept-Language: ja,en-US;q=0.9,en;q=0.8(CR+LF) 8 Cache-Control: max-age=0(CR+LF) 9 Connection: keep-alive(CR+LF) 10 Host: www.metro.tokyo.jp(CR+LF) 11 If-Modified-Since: Thu, 25 Jul 2019 08:36:32 GMT(CR+LF) 12 Referer: https://www.google.com/(CR+LF) 13 Upgrade-Insecure-Requests: 1(CR+LF) 14 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36(CR+LF)(CR+LF) 15 ') 16 17while a = post.gets 18 puts a 19end 20 21 22 post.close
前回
ruby
1post = TCPSocket.open("www.metro.tokyo.jp",443)
使っていいポート
前回と同じくデバッグツールでリクエストヘッダーをあらかじめ
取得し、それをsocketで送る形となっています。
実行結果としてエラーこそ起こらず送ることはたぶんできているとおもうのですが
レスポンスが返ってこないので適切に送れているか
さえ分からない状況です。
ポートの部分をシングルクォーテーションにしたりと
いろいろためしたのですがだめでした。
もしかしたら、リクエストの作り方から間違えているかもしれません。
デバッグツールですが
検証>network>headerで見れたRequest Headersの部分と
ruby
1GET / HTTP/1.1(CR+LF)
をくっつけただけです。
わからないのでお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/25 12:40
2019/07/25 12:46
2019/07/25 12:48
2019/07/25 12:51
2019/07/25 12:54 編集
2019/07/25 12:56
2019/07/25 12:58
2019/07/25 13:07
2019/07/25 13:10
2019/07/25 13:17 編集
2019/07/25 13:20
2019/07/25 13:30
2019/07/25 13:44 編集
2019/07/25 13:53
2019/07/25 14:04