import socket
import os
user_url = input("Enter url: ")
Host_name = user_url.split("/")[2]
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect((Host_name, 80))
cmd = 'GET ' + user_url + ' HTTP/1.0\r\n\r\n'.encode()
mysock.send(cmd)
while True:
data = mysock.recv(512)
if len(data) < 1:
break
print(data.decode(),end='\n')
mysock.close()
何らかの理由でこのエラーを取得します
URLを入力: http://data.pr4e.org/romeo.txt
7 mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 8 mysock.connect((Host_name, 80)) 9 cmd = 'GET ' + user_url + ' HTTP/1.0\r\n\r\n'.encode() TypeError: can only concatenate str (not "bytes") to str
エンコーディングとデコーディングは私には正しいようです、そして.encode()の前に\ nを使用してそれを転送しました。これはクラス用です
問題は、連結する前にエンコードしていることです。
'GET ' + user_url + ' HTTP/1.0\r\n\r\n'.encode()
最初に連結してから、全体をエンコードする必要があります。
('GET ' + user_url + ' HTTP/1.0\r\n\r\n').encode()