РУКОВОДСТВО · ОБНОВЛЕНО 2026-11-15
HTTP 406 в AI API — как проверить заголовок Accept
Код 406 указывает на проблему согласования формата ответа. Сверьте, какой формат клиент запрашивает и какие представления возвращает конкретная операция.
Код 406 указывает на проблему согласования формата ответа. Сверьте, какой формат клиент запрашивает и какие представления возвращает конкретная операция.
1. Проверьте фактический Accept
Снимите безопасную копию заголовков после применения настроек SDK и прокси. Проверьте медиатипы и веса q. Значение q=0 исключает соответствующий вариант.
2. Сверьте обычный и потоковый режимы
Для JSON-операции проверьте application/json. Для SSE сверяйте контракт маршрута и параметр включения потока. Один Accept не включает поток там, где режим выбирается полем stream.
3. Уберите лишние ограничения
На локальном стенде начните с заголовка из документации. Если 406 исчез, возвращайте свои ограничения по одному. Проверьте также Accept-Language или Accept-Encoding, если сервер учитывает эти заголовки.
4. Проверьте итоговый ответ
После исправления сравните Content-Type ответа с ожидаемым парсером. Проверьте обработку JSON-ошибки, если успешный ответ приходит как SSE. Храните отдельные безопасные примеры для обоих случаев.
Частые вопросы
Чем Accept отличается от Content-Type?
Первый задаёт предпочтения по ответу, второй описывает передаваемое содержимое.
Всегда ли сервер вернёт 406?
Сервер может выбрать ответ по умолчанию, если контракт допускает это.
Можно ли начать с */*?
На стенде это помогает выявить слишком строгую настройку. Для рабочего клиента задайте поддерживаемый формат.
Стоит ли менять модель?
Сначала проверьте маршрут и заголовки HTTP.