Конструктор
Все поля необязательны. Метод запроса не важен, тело игнорируется — все параметры передаются в строке запроса.
Живой предпросмотр URL
Обновляется по мере правок. Это и есть точный URL запроса.
https://arttron.dev/api/fail?status=500&rate=1Ответ
Заполните конструктор и отправьте запрос, чтобы увидеть статус, заголовки, тело и затраченное время.
Примеры в один клик
Вызовите из своего кода
curl -i 'https://arttron.dev/api/fail?status=500&rate=1'const res = await fetch('https://arttron.dev/api/fail?status=500&rate=1');
console.log(res.status, await res.text());import axios from 'axios';
try {
const res = await axios.get('https://arttron.dev/api/fail?status=500&rate=1');
console.log(res.status, res.data);
} catch (err) {
console.log(err.response?.status, err.response?.data);
}Что такое симулятор HTTP-ошибок?
Симулятор HTTP-ошибок отвечает на запрос заведомо неверным ответом, чтобы вы могли проверить обработку сбоев в клиенте. Вместо того чтобы отключать сервис или ждать реального сбоя, вы запрашиваете конкретный статус — например 503 или 429 — и инструмент его возвращает. Направьте свой код на URL симулятора и посмотрите, как он себя поведёт. Эта страница — браузерный интерфейс конечной точки /api/fail: тот же движок, что лежит в основе MCP-инструмента simulate_http_error.
Реальные сбои редко бывают одиночным 500. Нестабильный API падает лишь иногда, ограничение частоты возвращает Retry-After, провайдеры добавляют свою форму ошибки (OpenAI, Stripe, AWS XML, Cloudflare), шлюз зависает перед тайм-аутом, а соединение может просто оборваться. Симулятор воспроизводит всё это: доля ошибок от 0 до 1, фиксированная или случайная задержка, последовательность по ключу для тестов повторов, переопределение Retry-After, тела в формате провайдеров (JSON, text, HTML, XML), обрыв соединения и зависший ответ. Сид делает случайные статус и задержку воспроизводимыми.
Как пользоваться симулятором HTTP-ошибок
- Задайте статус (или список через запятую, из которого выбирается случайный) и, если нужны перемежающиеся сбои, долю ошибок меньше 1.
- При необходимости добавьте задержку, последовательность с ключом сценария, переопределение Retry-After, пресет провайдера и формат тела.
- Скопируйте живой URL в curl, fetch или axios — либо нажмите «Отправить», чтобы вызвать его прямо здесь и увидеть статус, заголовки, тело и время.
- Переключитесь на один из примеров в один клик (нестабильный API, лимит, повторы, медленный ответ, обрыв), чтобы получить реалистичный сбой одним движением.
Частые вопросы о симуляторе HTTP-ошибок
Почему обрыв соединения — не настоящее отключение?
App Router Next.js не предоставляет низкоуровневый доступ к сокету, поэтому настоящее уничтожение сокета недоступно. Маршрут отправляет заголовки ответа, а затем прерывает поток тела, так что клиент получает сетевую ошибку (terminated / fetch failed), а не аккуратный статус. Ответ несёт X-Sim-Drop: true, чтобы эмуляция была явной.
Как работает режим последовательности?
С seq и ключом n-й запрос для этого ключа получает n-й код из списка, затем последовательность повторяется. Счётчик живёт для каждого ключа один час и обновляется при каждом обращении, поэтому тест повторов сохраняет порядок на протяжении всего прогона.
Инструмент бесплатный и нужен ли ключ?
Браузерный интерфейс вызывает /api/fail на сайте без ключа. Для скриптов можно аутентифицироваться API-ключом; на конечной точке действует ограничение 60 запросов в минуту на IP.
