← Все инструкции

РУКОВОДСТВО · ОБНОВЛЕНО 2026-11-09

HTTP 415 в AI API: как исправить формат запроса

Диагностика 415 Unsupported Media Type при отправке JSON и файлов в AI API. Как сверить маршрут, заголовки, границы multipart и фактическое тело.

Код 415 означает, что сервер отклонил формат содержимого запроса. Начните с документации конкретной операции и фактических заголовков на выходе клиента. Маршрут, который принимает JSON, может отклонить форму с файлом, а маршрут загрузки ожидает свою форму. Изменение одного заголовка не превращает сериализованный JSON в multipart. Чтобы локализовать причину, сохраните безопасный пример структуры запроса и меняйте по одному параметру.

1. Проверьте маршрут и способ отправки

Сверьте метод, адрес и ожидаемый тип тела по документации. Например, одна операция принимает JSON с параметрами генерации, а другая ожидает файл в именованном поле формы. Отметьте, где конкретно возвращается 415, если запрос проходит через приложение и обратный прокси. Проверяйте статус и диагностический текст ответа вместе. Выбор другой модели на том же маршруте редко помогает, пока принимающая сторона не может распознать переданное представление.

2. Сопоставьте заголовок с фактическим телом

Для JSON сериализуйте объект один раз и передайте медиатип, указанный в документации. Поле в интерфейсе SDK может автоматически выставить заголовок, поэтому проверяйте отправленный запрос. Если строку JSON сериализовали повторно, тело станет строковым литералом. В зависимости от сервера это даст другую ошибку, даже если заголовок принят. Content-Type описывает содержимое запроса, а Accept задаёт предпочтения для представления ответа. Их изменение решает разные задачи.

3. Проверьте границу формы и кодирование

В форме multipart параметр boundary в Content-Type должен совпадать с разделителями тела. Если форму строит HTTP-клиент, обычно ему же поручают выставлять заголовок. Самостоятельно заданный заголовок без boundary может сделать корректно собранные части нечитаемыми. Если участвует Content-Encoding, сверяйте заявленное сжатие с фактическими байтами и поддержкой сервера. Заголовок части с файлом и заголовок всей формы относятся к разным уровням.

4. Сведите ошибку к минимальному запросу

Используйте локальный тестовый маршрут или безопасный минимальный образец. Зафиксируйте метод, тип содержимого и форму тела без ключей, персональных данных и файлов пользователя. Сравните рабочий пример с проблемным и измените один фактор. Проверьте также правила прокси, если запрос до приложения меняется по пути. Код 413 ведёт к проверке размера, тогда как 415 ведёт к формату. После устранения причины проверьте ошибочный пример снова, чтобы убедиться, что исправлен именно этот случай.

Частые вопросы

Поможет ли выставить Accept: application/json?

Этот заголовок относится к ответу. Для ошибки формата запроса сверяйте Content-Type и содержимое тела.

Можно ли вручную указать multipart/form-data?

Можно, если вы также корректно задаёте boundary и формируете тело. При использовании готового конструктора формы отдайте ему обе задачи.

Всегда ли неверный JSON возвращает 415?

Код зависит от контракта сервера. Например, принятый тип с синтаксической ошибкой может приводить к 400.

Стоит ли повторить тот же запрос?

Сначала измените причину отклонения. Повтор с тем же представлением обычно воспроизводит ошибку.

Источники

Калькулятор стоимости →