使用用户输入发送套接字GET请求的语法是什么

问题描述 投票:0回答:1

我试图提示用户提供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()  
python sockets python-2.x http-status-code-400
1个回答
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)

其中“地址”是用户输入的地址的名称。

© www.soinside.com 2019 - 2024. All rights reserved.