Python encode()不起作用?

用户名

我已经尝试过了encode(),但是行不通。我不断得到,TypeError: must be str, not bytes因为通常我会得到TypeError: a bytes-like object is required, not 'str'

ip = socket.gethostbyname("google.com")
port = 80
robot = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
payload = "Hello world"
try:
    robot.connect((ip, port)))
    robot.send('GET '+payload.encode()+' HTTP/1.1\n\n')
except socket.error:
    print("connection lost")
robot.close()

我不明白我做错了什么?

搅拌机

如果查看的文档socket.send,则可以看到第一个参数是bytes,而不是字符串。encode使用特定编码的字符串将其转换为字节,然后decode使用特定编码的字节将其转换为字符串:

robot.send(b'GET ' + payload.encode() + b' HTTP/1.1\n\n')

str.encodestr.decode默认为utf-8

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章