ご存知のように、データのサイズがわからない場合があります ( Content-Length
http 応答ヘッダーにない場合)。
http応答データを受信する最良の方法は何ですか(ソケットを使用)?
次のコードはすべてのデータを取得できますが、でブロックされbuf = sock.recv(1024)
ます。
from socket import *
import sys
sock = socket(AF_INET, SOCK_STREAM)
sock.connect(('www.google.com', 80))
index = "GET / HTTP/1.1\r\nHOST:www.google.com\r\nConnection:keep-alive\r\n\r\n"
bdsock.send(index)
data = ""
while True:
buf = bdsock.recv(1024)
if not len(buf):
break
data += buf