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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM