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 ![]() 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 可以转 |