HttpClient

Основні класи і методи http.client

Клас/МетодОпис
HTTPConnectionСтворення HTTP-підключення.
HTTPSConnectionСтворення HTTPS-підключення.
request(method, url, ...)Відправка HTTP-запиту.
getresponse()Отримання відповіді на запит.
response.statusСтатус-код відповіді.
response.reasonТекстовий опис статусу відповіді.
response.read()Читання даних відповіді.
response.getheaders()Отримання всіх заголовків відповіді.
response.getheader(name)Отримання значення конкретного заголовку.

Виконання GET-запиту

import http.client

# Створення підключення
conn = http.client.HTTPSConnection("jsonplaceholder.typicode.com")

# Відправка GET-запиту
conn.request("GET", "/posts/1")

# Отримання відповіді
response = conn.getresponse()
print(response.status, response.reason)

# Читання і декодування даних відповіді
data = response.read().decode('utf-8')
print(data)

# Отримання всіх заголовків відповіді
headers = response.getheaders()
for header in headers:
    print(f"{header[0]}: {header[1]}")

# Закриття підключення
conn.close()

Виконання POST-запиту

import http.client
import json

# Дані для відправки
payload = json.dumps({
    "title": "foo",
    "body": "bar",
    "userId": 1
})

# Заголовки
headers = {
    'Content-Type': 'application/json'
}

# Створення підключення
conn = http.client.HTTPSConnection("jsonplaceholder.typicode.com")

# Відправка POST-запиту
conn.request("POST", "/posts", body=payload, headers=headers)

# Отримання відповіді
response = conn.getresponse()
print(response.status, response.reason)

# Читання і декодування даних відповіді
data = response.read().decode('utf-8')
print(data)

# Закриття підключення
conn.close()

Запит через проксі

import http.client

# Налаштування проксі-сервера
proxy_host = '10.10.1.10'
proxy_port = 3128
dest_url = 'httpbin.org'
dest_path = '/ip'

# Створення з'єднання з проксі-сервером
conn = http.client.HTTPConnection(proxy_host, proxy_port)

# Формування і відправка запиту
conn.set_tunnel(dest_url)
conn.request('GET', dest_path)

# Отримання відповіді
response = conn.getresponse()
print(response.status, response.reason)
print(response.read().decode('utf-8'))

# Закриття з'єднання
conn.close()
2015-2026 © SumyNikNet