Ответ
Тело (Body) HTTP-запроса содержит данные, отправляемые на сервер. Его наличие и формат определяются методом запроса и заголовком Content-Type.
Основные форматы тела запроса:
| Метод | Тип контента (Content-Type) |
Пример тела (Body) | Назначение |
|---|---|---|---|
| POST/PUT | application/json |
{"username": "john", "active": true} |
Стандарт для REST API, передача структурированных данных. |
| POST | application/x-www-form-urlencoded |
username=john&active=true |
Данные формы, кодируются в строку запроса. |
| POST | multipart/form-data |
Граница между частями с данными и файлами | Отправка бинарных файлов (загрузка изображений, документов). |
| GET | (обычно не указывается) | Тело отсутствует | Параметры передаются в URL как query-строка (?id=1). |
Практические примеры с использованием requests (Python):
import requests
# 1. POST с JSON (автоматически устанавливает Content-Type: application/json)
response = requests.post('https://api.example.com/login',
json={"email": "user@example.com", "password": "secret"})
# 2. POST с form-urlencoded (данные формы)
response = requests.post('https://api.example.com/form',
data={"key1": "value1", "key2": "value2"})
# 3. POST с файлом (multipart/form-data)
files = {'file': open('report.pdf', 'rb')}
response = requests.post('https://api.example.com/upload', files=files)
Важно для тестирования: Всегда проверяйте, что заголовок Content-Type соответствует фактическому формату передаваемых данных, иначе сервер может не обработать запрос корректно.