繁体   English   中英

Python TypeError:需要一个类似字节的对象,而不是'str'

[英]Python TypeError: a bytes-like object is required, not 'str'

我正在使用以下脚本向Google提出请求。 但是,当我执行它时,出现错误说明:

client.send(“ GET / HTTP / 1.1 \\ r \\ nHost:google.com \\ r \\ n \\ r \\ n”)TypeError:需要一个类似字节的对象,而不是'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)

任何纠正问题的建议将不胜感激。

您需要选择一种编码 ,例如:

client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n".encode(encoding='utf-8'))

另请参见: Python套接字发送缓冲区Vs。 StrTypeError:“ str”不支持缓冲区接口

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM