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()
ふんどしの持ち主
- 昔の私
コメント
コメントを投稿