import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('www.sina.com.cn', 80))
s.send(b'GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection: close\r\n\r\n')
buffer = []
while True:
d = s.recv(1024)
if d:
buffer.append(d)
else:
break
data = b''.join(buffer)
s.close()
with open('d:/sina.html', 'wb') as f:
f.write(data)
print('done!')enter code here
在s.send(xxx)
中,\r\n\r\n
之后有两个close
,它可以正常工作,但如果我只写一个\r\n
,那么我什么也得不到。
为什么会这样?
答案 0 :(得分:3)
因为这是HTTP协议的要求;你拥有来关闭带有双CRLF对的标头。即使没有请求正文,这也适用。
答案 1 :(得分:1)