码迷,mamicode.com
首页 > 编程语言 > 详细

python问题:TypeError: a bytes-like object is required, not 'str'

时间:2017-05-31 23:10:43      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:UI   encode   强制   soc   http   tail   文章   pytho   对象   

 

源程序:

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'

标签:UI   encode   强制   soc   http   tail   文章   pytho   对象   

原文地址:http://www.cnblogs.com/zhaijiahui/p/6926159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!