Ответ
Тело (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 соответствует фактическому формату передаваемых данных, иначе сервер может не обработать запрос корректно.
Ответ 18+ 🔞
А, слушай, смотри, вот эта штука — тело запроса, блядь. Это как бы груз, который ты на сервер везешь. Есть он или нет, и в каком виде — зависит от того, какой ты метод используешь и что в заголовке Content-Type написано, ёпта.
Короче, основные форматы этой самой «посылки»:
| Метод | Заголовок (Content-Type) |
Пример тела | Зачем это надо? |
|---|---|---|---|
| POST/PUT | application/json |
{"username": "john", "active": true} |
Это как золотой стандарт для API, чтобы структурированные данные слать. |
| POST | application/x-www-form-urlencoded |
username=john&active=true |
Старые-добрые данные из форм, превращенные в одну длинную строку. |
| POST | multipart/form-data |
Там границы всякие, части с данными и файлами | Когда нужно отправить файлы — картинки, документы, вот это всё. |
| GET | (обычно не пишется) | Тела нет, блядь! | Параметры лепятся прямо в URL, после знака вопроса (?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 совпадал с тем, что ты реально в тело пихаешь. А то отправишь JSON, а в заголовке напишешь, что это форма — сервер тебя просто не поймёт, и будет тебе волнение ебать и терпения ноль ебать, пока ищешь, в чём косяк.