Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 17, 2017 00:18:32

yuriimysnyk
Зарегистрирован: 2017-11-16
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Запрос socket.send('GET url HTTP/1.0\n\n'). url - переменная на адрес. Сервер выдаёт ошибку 400. Помогите

Здравсвуйте. Помогите, пожалуйста разобраться, почему не работает код. Вот в таком варианте кода сервер отвечает ошибкой 400. (Использовал Python 2.7)

import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
url = raw_input('Enter_')
if len(url) == 0: url = 'http://data.pr4e.org/romeo.txt'
host = url.split('/')
mysock.connect((host, 80))
mysock.send('GET url HTTP/1.0\n\n')
print mysock.recv(1024)
mysock.close()

Проблема в этой строке: mysock.send('GET url HTTP/1.0\n\n')
Если прописать так: mysock.send('GET http://data.pr4e.org/romeo.txt HTTP/1.0\n\n') то все работает.
Второй вариант не подходит, поскольку суть упражнения в том, чтобы выполнять запрос на адрес, прописанный пользователем. Как исправить код?

Отредактировано yuriimysnyk (Ноя. 17, 2017 00:22:51)

Офлайн

#2 Ноя. 17, 2017 02:06:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Запрос socket.send('GET url HTTP/1.0\n\n'). url - переменная на адрес. Сервер выдаёт ошибку 400. Помогите

Поставь себе третий питон и используй пример из документации
https://docs.python.org/3/library/socket.html#example

Если вопросы остаются, то при выкладывании кода на форум, оборачивай его в теги code.

yuriimysnyk
host = url.split('/')
В host должна попасть строка, а у тебя написано, что туда попадает список. Да, мы знаем, что там есть квадратные скобки, которые куда-то делись. Так вот делись они из-за того, что: 1) ты не использовал теги code, как принято на всех форумах; 2) ты не перечитал то, что запостил, и оставил лежать неправильный код. В итоге мы должны по твоему неправильному коду строить догадки, что же в нём было.



Отредактировано py.user.next (Ноя. 17, 2017 02:07:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version