我正在使用下面的脚本向Google发出请求。但是,当我执行它时,我收到一个错误提示:
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
TypeError: a bytes-like object is required, not 'str'
在stackoverflow上查找类似问题时,建议使用client.sendto并对消息进行编码。然而,在我的情况下,没有传递任何消息。
以下是我使用的脚本:
以下是我使用的脚本:
import socket
target_host = "www.google.com"
target_port = 80
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_host,target_port))
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
response = client.recv(4096)
print(response)
希望能够给出纠正此问题的任何建议,将不胜感激。
""GET / HTTP/1.1\r\nHost: google.com\r\n\r\n"
是一个Unicode字符串,而.send()
需要字节以便通过网络发送。你的代码试图直接发送Unicode字符串而没有进行编码,这就是错误信息所抱怨的原因。 - dhke