Найти - Пользователи
Полная версия: Как сделать get запрос через http пакет?
Начало » Python для новичков » Как сделать get запрос через http пакет?
1
ivanzzz
Как обратится к сайту используя именно http пакет (не по ссылке)
GET /img/ HTTP/1.0
Location: mytestsite.ru
Host: ...
и получить ответ?
py.user.next
python.org. http.client
old_monty
У меня получилось сделать из консоли запрос GET и получить ответ (в данном примере сайт akva.by взят навскидку, это белорусский форум аквариумистов):

>>> from http.client import HTTPConnection
>>> from urllib.parse import urlencode
>>> con = HTTPConnection("akva.by")
>>> con.request("GET", "/forum/index.php")
>>> result = con.getresponse()
>>> print(result.read().decode("utf-8"))
# ... (огромный объем выданного текста, кода JavaScript и HTML-разметки здесь не приводится)
>>> con.close()
ivanzzz
А как добавить остальные заголовки?
old_monty
ivanzzz
А как добавить остальные заголовки?
Об этом подробно рассказывается в документации. Там сказано, что метод request объекта HTTPConnection имеет опциональные именованные параметры:
HTTPConnection.request(method, url, body=None, headers={})
Как видим, HTTP-заголовки для отправки в запросе на сервер указываются в виде словаря. В документации также отдельно сказано насчет заголовка Content-Length:
If headers does not contain a Content-Length item, one is added automatically if possible
То есть, если заголовок Content-Length не указан в параметре headers, то он будет добавлен автоматически, если это возможно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB