知識は素人なのでご了承ください。
socketのwriteメソッドを使ってHTTPリクエストを送ってレスポンスを取得したいです。
ruby
1require 'socket' 2 3http = TCPSocket.open('teratail.com',443) 4 http.write('HTTPリクエスト') 5http.close
デバッグツールを使って
リクエストヘッダーフィールドを取得しました。
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 Accept-Encoding: gzip, deflate, br Accept-Language: ja,en-US;q=0.9,en;q=0.8 Cache-Control: max-age=0 Connection: keep-alive Cookie: tt_stc=24ba省略・・・ Host: teratail.com Referer: https://teratail.com/questions/64231 Upgrade-Insecure-Requests: 1 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
よって
ruby
1 2require 'socket' 3post = TCPSocket.open("teratail.com",443) 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, br(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 Cookie: tt_stc省略(CR+LF) 11 Host: teratail.com(CR+LF) 12 Referer: https://teratail.com/questions/64231(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 17 while a = post.gets 18 puts a 19 end 20 21 post.close 22
のように改行を入れて送ったのですが返ってきません。
いちおうクッキーを削除したパターンのも試したのですがだめでした。
原因はなんでしょうか?
やはり、やりかたから間違えていますか?
分からないのでお願いします。
回答1件
あなたの回答
tips
プレビュー