2017-04-05 45 views
1

我正在使用以下腳本向Google發送請求。然而,當我執行它,我得到的錯誤,指出:Python TypeError:需要類似字節的對象,而不是'str'

client.send( 「GET/HTTP/1.1 \ r \ n主機:google.com \ r \ n \ r \ n」) 類型錯誤:一字節狀物體是必需的,而不是「STR」

論計算器瀏覽對於類似問題,client.sendto已被推薦與編碼消息一起使用。但是,在我的情況下,沒有消息傳遞。

下面是我使用的腳本:

import socket 
target_host = "www.google.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: google.com\r\n\r\n") 
response = client.recv(4096) 
print(response) 

上糾正問題的任何指針將不勝感激。

+0

你是什麼意思 「沒有消息」?您顯然正在發送HTTP請求。 –

+1

在Python 3中,'「」GET/HTTP/1.1 \ r \ n主機:google.com \ r \ n \ r \ n「是一個unicode字符串,'.send()'需要通過線路發送字節。您的代碼嘗試直接發送unicode字符串而不進行編碼,錯誤消息正確地抱怨。 – dhke

回答

相關問題