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