Im пытается выполнить следующий код из главы 12 книги «Python for Informatics».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 Дата: Вс, 14 марта 2010 23:52:41 GMT сервер: Apache Последняя -Modified: вт, 29 декабря 2009 1:31:22 GMT ETag: "143c1b33-a7-4b395bea" Accept-Диапазоны: байты Content-Length: 167 Подключение: закрыть Content-Type: текст/обычный Но мягкий, какой свет вон там Окно ломает Это восток и Джульетта солнца Встаньте справедливое солнце и убить завистливые луны Кто уже болен и бледные от горя
К сожалению, переменные данные заполняются со следующей строкой:
'HTTP/1.1 400 Bad Request. Плохое количество командных частей [ 'GET', 'http://www.py4inf.com/code/romeo.txt', 'HTTP/1.0', 'X-WS-Ver:', '1,0']»
Я не могу найти хорошее объяснение этой ошибки. Я надеюсь, что кто-то может помочь!
Вы используете для этого сокеты? Вы можете использовать библиотеку запросов: 'request.get (url) .text'. – postelrich
Я получаю «HTTP/1.1 200 OK», выполняя вышеуказанный код. – Ahmad
''GET /code/romeo.txt HTTP/1.1 \ r \ nHost: www.py4inf.com \ r \ nUser-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv: 48.0) Gecko/20100101 Firefox/48.0 \ r \ nAccept: text/html, application/xhtml + xml, application/xml; q = 0.9, */*; q = 0.8 \ r \ nAccept-Language: 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