首页 > 代码库 > python问题:TypeError: a bytes-like object is required, not 'str'
python问题:TypeError: a bytes-like object is required, not 'str'
源程序:
import socket target_host = "www.baidu.com" # 127.0.0.1 target_port = 80 # 建立一个socket对象 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建TCP连接 # 连接客户端 client.connect((target_host,target_port))
client.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
错误背景:程序想创建一个TCP连接,在发送数据的时候报错,表明send函数需要传byte类型值。
类型错误:TypeError: a bytes-like object is required, not ‘str‘
解决方法:
1、在数据前面加b,强制转换
client.send(b"GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")
2、发送数据的时候进行编码
client.send(("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n").encode())
这里我看了一篇前人MrYx的文章,说的很好 http://blog.csdn.net/yexiaohhjk/article/details/68066843
python问题:TypeError: a bytes-like object is required, not 'str'
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。