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

时间:2016-09-15 09:42:41

标签: python sockets python-2.x http-status-code-400

我正在尝试提示用户输入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()  

1 个答案:

答案 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)

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