http.client

Модуль позволяет получить информацию из интернета по протоколу HTTP и HTTPS.

HTTPConnection()

class http.client.HTTPConnection(<domen>[, port=80[, <strict>[, <timeout>[[, <source_address>]]]]])

объект соединение

  • domen - домен, указывается без протокола

  • port - порт

from http.client import HTTPConnection
from urllib.parse import urlencode

data = urlencode({'a': 'A'})
headers = {
    'User-Agent': 'Mozila',
    'Accept': 'text/html',
    'Accept-Language': 'ru, ru-RU',
    'Accept-Charset': 'windows-1251',
    'Referer': '/'
}

con = HTTPConnection('ilnurgi1.ru')
con.request('GET', '/home?%s' % data, headers=headers)
result = con.getresponse()
print(result.read().decode('cp1251'))
con.close()

headers = {
    'User-Agent': 'Mozila',
    'Accept': 'text/html',
    'Accept-Language': 'ru, ru-RU',
    'Accept-Charset': 'windows-1251',
    'Referer': '/',
    'Content-Type': 'application/x-www-form-urlencoded'
}
con = HTTPConnection('ilnurgi1.ru')
con.request('POST', '/home', data, headers=headers)
result = con.getresponse()
print(result.read().decode('cp1251'))
con.close()
close()

закрывает объект соединения

getresponse()

возвращает объект результата запроса HTTPResponse

read([<количество байт>])

Читает ответ севервера, без заголовков

request(method, path[, body=None][, headers])

отправляет параметры запроса

  • method - метод запроса

  • path - путь от корня, для GET запроса данные также передаются тут

  • body - тело запроса для POST запроса

  • headers - заголовки

conn.request(
    method='POST',
    path='',
    body=urllib.parse.urlencode({}),
    headers={}
)

HTTPResponse()

class http.client.HTTPResponse

Ответ http запроса

import urllib

conn = urllib.request.open(url)
msg

HTTPMessage доп информация о заголовках ответа

reason

строка, текстовый статус

status

Число, код возврата запроса

conn.status
# 200
version

число, версия протокола. (10 - HTTP/1.0, 11 - HTTP/1.1)

__next__()

возвращает одну строку при каждом вызове, при достижении конца, будет возбуждено исключение StopIteration

close()

закрывает объект результата

getheader(<Заголовок>[, <Значение по умолчанию>=None])

Возвращает значение указанного заголовка

conn.getheader("Content-Type")
# text/plain
getheaders()

Возвращает все заголовки ответа сервера в виде списка кортежей

conn.getheaders()
# [("Content-Type", "text/plain"), ...]
geturl()

возвращает урл адрес полученного документа

info()

возвращает доп информацию в виде объекта HTTPMessage

read([<количество байтов>])

Возвращает строку, считанные данные

data = conn.read()
readline([<количество байтов>])

возвращает строку, считанные данные, считывает одну строку при каждом вызове

readlines([<количество байтов>])

возвращает список, считанные данные, считывает одну строку при каждом вызове

HTTPMessage()

class http.client.HTTPMessage

доп информация результата запроса

as_string([unixform=Flase][, maxheaderlen=0])

возвращает все заголовки ответа сервера в виде строки

get(<Заголовок>[, failobj=None])

возвращает строку, значение указанного загловка

get_all(<Заголовок>[, failobj=None])

возвращает список, значения указанного загловка

get_content_charset([failobj=None])

возвращает кодировку из заголовка Content-Type

get_content_maintype()

возвращает первую составляющую MIME-типа

get_content_subtype()

возвращает вторую составляющую MIME_типа

get_content_type()

возвращает MIME-тип документа из заголовка Content-Type

items()

список всех заголовков ответа сервера

keys()

список ключей в заголовках ответа сервера

values()

список значений в заголовках ответа сервера