HTTPサーバが応答しなかった・・・
HTTP接続で、リクエストを送信しても応答のないサーバがあった。
これが、なぜかわからずハマってしまった・・・
で、あまりにアホすぎて、もう一回やりそうなので書いておく。
その理由は、リクエストの改行コードが「CRLF」なのを忘れてた。
LinuxのPythonで書いてたから・・・すっかり忘れてた。
でも「LF」だけで応答を返すサーバがいるから、やっちまうんだよな・・・って人のせいにしておこう。
今回はLinux上でのエディタでコーディングしているので改行が「LF」、よって「CR」を追加するのに「\r」を使うのだ。
これが、なぜかわからずハマってしまった・・・
で、あまりにアホすぎて、もう一回やりそうなので書いておく。
その理由は、リクエストの改行コードが「CRLF」なのを忘れてた。
LinuxのPythonで書いてたから・・・すっかり忘れてた。
でも「LF」だけで応答を返すサーバがいるから、やっちまうんだよな・・・って人のせいにしておこう。
今回はLinux上でのエディタでコーディングしているので改行が「LF」、よって「CR」を追加するのに「\r」を使うのだ。
import socket port = 80 host = "localhost" path = "/" # ソケットの作成 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # リモートに接続 sock.connect((host, port)) req = """HEAD %s HTTP/1.1\r User-Agent: MyCode\r Host: %s\r Accept: */*\r \r """% (path,host) sock.send(req.encode("ascii")) data = sock.recv(1024) print(data.decode("ascii")) sock.close()
ふんどしの持ち主
- 昔の私
コメント
コメントを投稿