import socket
target_host = "cn.bing.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:cn.bing.com\r\n\r\n")
response = client.recv(4096)
print(response)
python 初学者,错误提示是需要把 str encode 到字节流:
但是还是不知道怎么做才好。。
烦请 v 友指点下,谢谢!
1
maltoze 2020-04-09 11:04:51 +08:00 2
client.send(b"GET / HTTP/1.1\r\nHost:cn.bing.com\r\n\r\n")
|
2
Mithrandir 2020-04-09 11:07:36 +08:00
man 2to3
|
3
mnsw 2020-04-09 11:08:40 +08:00
|
4
gimp 2020-04-09 11:09:45 +08:00
str_data = "GET / HTTP/1.1\r\nHost:cn.bing.com\r\n\r\n"
b_str_data = str_data.encode() |
6
gimp 2020-04-09 11:36:07 +08:00
如果需要动态拼接内容,就用 encode() 编码后发送,固定值可以用 b"" 来标注内容类型。
|
7
leavic 2020-04-09 13:00:45 +08:00
我不知道我理解对不对
1 、用引号圈起来的默认是 string 2 、跟机器交互一般都用过 bytes 数据,不是 string 3 、string encode 成 bytes 给机器用,bytes decode 成 string 给人读。 |
8
linvaux 2020-04-09 17:56:47 +08:00
貌似有个工具 2to3 可以转
|