的recv()函数没有得到消息,早在蟒蛇
问题描述:
我使用python的recv()函数没有得到消息,早在蟒蛇
是新来的TCP/IP连接我有这个简单的代码:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("www.google.com",80))
s.send("GET /\n")
while 1:
received = s.recv(1024)
if received:
print received
但是当我运行它,它只是始终运行并没有给我任何结果!
你能帮我吗。由于
答
s.send("GET /\n")
这是不正确的。您应该以正确的方式发送http数据。使用此
s.send("GET/HTTP/1.0\r\nHost: www.google.com\r\n\r\n");
其实你是送standard http request headers。
GET/HTTP/1.0
Host: www.google.com
注:由于David说,在评论你必须能够解码分块传输编码。因此,您最好在报头中注明HTTP/1.0
。
因为我真的不认为他想处理分块编码,声称1.1合规可能不是一个好主意。 –
是的,我用“s.send(”GET/HTTP/1.1 \ r \ nHost:www.google.com \ r \ n \ r \ n“)替换了”s.send(“GET/\ n”)“ “一个,它现在的作品,谢谢 –
@大卫我从来没有问题,该头。 –