我正试图通过向google服务器发送Get请求,
GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n
通过Python3 sockets.send函数。发送代码如下所示:
import socket
buffer = input() #filled the with 'GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n'
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
target = "www.google.com"
port = 80
client.connect((target,port))
client.send(buffer.encode())
while True:
recv_len = 1
response = ""
while recv_len:
data = client.recv(4096).decode(errors="ignore")
recv_len = len(data)
response += data
if recv_len < 4096:
break
print(response)
但是我没有从服务器收到任何数据。
有人能帮我吗?我尝试过类似的问题,但大多数问题都集中在请求中使用\n
问题出在线路上
正如前面提到的Serge Ballesta,
input()
函数将\r
读取为两个字符"\"
和"r"
。使用通过管道将GET请求传输到程序文件将解决此问题
相关问题 更多 >
编程相关推荐