我正在尝试提示用户输入URL,以便它可以读取任何页面,但是当我运行程序时,我一直收到400错误的请求错误。
我已从输入中与主机建立了套接字连接。但是当我尝试发送一个GET请求时,它会爆炸,因为400错误的请求错误。我该怎么办?
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
url = raw_input('Enter - ')
splt = url.split('/')
mysock.connect((splt[2], 80))
mysock.send('GET url \n\n')
except:
print 'invalid URL'
while True:
data = mysock.recv(512)
if (len(data) < 1 ):
break
print data
mysock.close()
答案 0 :(得分:0)
在我看来,你并没有正确地调用GET。当你写
mysock.send('GET url \ n \ n')
您没有将变量“url”嵌入到命令中,而只是一个包含短语“url”的字符串。
我不知道,但这值得检查。
我自己的代码如下:
cmd ='GET'+地址+'HTTP / 1.0 \ r \ n \ r \ n' cmd = cmd.encode()
mysock.send(CMD)
其中“地址”是用户输入的地址名称。