Python:
Отправка HTTP-запроса
Как:
Внешняя библиотека requests
для Python делает выполнение HTTP-вызовов простым. Ниже приведен пример отправки простого GET-запроса:
import requests
response = requests.get('https://api.example.com/data')
print(response.status_code) # Выводит код состояния ответа
print(response.json()) # Если ответ содержит JSON, выводит его как словарь Python
Более подробный POST-запрос с JSON-полезной нагрузкой и пользовательскими заголовками:
import requests
import json
url = "https://api.example.com/submit"
data = {'key': 'value'}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(data), headers=headers)
print(response.status_code)
print(response.json())
Подробное изучение
HTTP-запросы - это то, как работает веб - они существуют с начала 90-х. Альтернативы библиотеке requests
Python включают стандартную библиотеку urllib
, но она немного более громоздка.
Понимание отправки HTTP-запросов включает в себя знание методов (GET, POST, PUT, DELETE и др.), кодов состояния (например, 200 OK, 404 Not Found), заголовков и тела данных.
Для потоковых или асинхронных запросов вы можете исследовать асинхронный аналог requests
или пакет aiohttp
. Под капотом эти библиотеки используют socket
Python для непосредственного сетевого общения.
Исторически requests
считается идиальным выбором из-за его простоты и мощности, но httpx
, более новая библиотека, совместимая с асинхроным программированием, набирает популярность.
Смотрите также
- Документация библиотеки
requests
: https://requests.readthedocs.io - Объяснение кодов состояния HTTP: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
- Документация Python
urllib
: https://docs.python.org/3/library/urllib.html - Библиотека
httpx
для асинхронных HTTP-запросов: https://www.python-httpx.org