我试图从“Python for Informatics”一书的第12章中执行以下代码。HTTP/1.1 400错误请求。错误的命令部分数量
import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
mysock.send('GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n')
while True:
data = mysock.recv(512)
if (len(data) < 1) :
break
print data
mysock.close()
根据这本书,脚本应该打印以下:
HTTP/1.1 200 OK 日期:孙老师,2010 3月14日23时52分41秒GMT 服务器:Apache 最后修饰:星期二,2009年12月29日1时31分22秒GMT 的ETag: “143c1b33-a7-4b395bea” 接受-范围:字节 的Content-Length:167 连接:关闭 的Content-Type:text/plain的 但通过那柔软的光线窗口打破 那是东方朱丽叶就是太阳 起来美丽的太阳,杀死羡慕月亮 谁已经面色惨白悲伤
不幸的是,可变数据充满以下字符串:
'HTTP/1.1 400错误请求。命令部分差多少[ 'GET', 'http://www.py4inf.com/code/romeo.txt', 'HTTP/1.0', 'X-WS-版本:', '1.0']”
我找不到这个错误有什么好的解释。我希望有人能帮帮忙!
你是否使用套接字来设置它?您可以使用请求库:'requests.get(url).text'。 – postelrich
我得到'HTTP/1.1 200 OK'运行上面的代码。 – Ahmad
GET /code/romeo.txt HTTP/1.1 \ r \ n主机:www.py4inf.com \ r \ n用户代理:Mozilla/5.0(X11; Ubuntu; Linux x86_64; rv:48.0)Gecko/20100101 Firefox/48.0 \ r \ n接受:text/html,application/xhtml + xml,application/xml; q = 0.9,*/*; q = 0.8 \ r \ n接受语言:en-US,en; q = 0.5 \ r \ nAccept-Encoding:gzip,deflate \ r \ nConnection:keep-alive \ r \ nUpgrade-Insecure-Requests:1 \ r \ n \ r \ n''我删除了答案,因为每个异常或步骤都需要大量的定义。 – dsgdfg