Недействительные параметры api перезагрузите страницу ошибка

If you are comfortable in the registry:
open run: regedit
and Try this:

HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowsCurrentVersionInternet Settings

On the right side, you’ll find a file named:

«ProxySettingsPerUse» or «Default»

Click it and change its value to «1» (obviously without the » «).
Then you accept.

From:
Gabriel Lobo on https://support.google.com/chrome/thread/34982026?hl=en
A few responses said it worked for them.

It worked for me too

Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№108-11-2015 20:38:53

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 42.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.


========================================================================


  Обсуждение скриптов и вопросов связанных с борьбой с капчами.

========================================================================


Начну пожалуй. :)

reCaptcha 2 сохранение на компьютер.

Директорию C:CapNum, куда сохранять и  имя файла/капчи cap.jpg, естественно можете заменить на свои.


Уменьшение картинки/капчи в размерах.

Тут есть много вариантов, приведу парочку.

Вариант 1

Использование сторонней программы.
Качаем convert.exe и распаковываем в папку куда сохраняются капчи (допустим C:CapNum).

Вот этот код уменьшит и обрежет картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg)

Вариант 2

Использование PHP
Качаем вот это и распаковываем в папку  C:CapNum.
Создаём файлик 1.php в папке куда сохраняются капчи C:CapNum.

Вот этот код, для запуска 1.php, уменьшит картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg).
И так же пронумерует все варианты ответов (маленькие картинки) от 1 до 9 .


=====================================================
RECAPTCHA
=====================================================

скрипт рекапчи, с уменьшением размера картинки и отправлением на рукапчу для распознания

=====================================================
SOLVEMEDIA
=====================================================

Пытаемся взломать или ищем флеш капчу.

Солвемедия ломается без проблем, если у вас динамический IP.
После каждого распознавания капчи, нужно менять IP, чистить куки и желательно подменять узер агент, т.е. версию операционки и браузера.

Сначала качаем вот это и распаковываем в папку  C:CapNum

Обратите внимание, я в скрипте ввёл свои сокращения (мне так удобнее) t0 t3
И если будете копировать только кусок скрипта то и шапку копируйте.

https://pastebin.mozilla.org/8867297


to be continued…:)

Отредактировано PRESIDENT (19-04-2016 18:30:59)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

№35217-02-2016 20:34:26

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 44.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Сессия рекапчи живет 2 минуты, тебе нужно за это время успеть с капчой совладать.


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

№35317-02-2016 22:08:57

mmmaks2004
Участник
 
Группа: Members
Зарегистрирован: 24-03-2015
Сообщений: 50
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Romstar08
Аудио капчу Solvemedia пробовал распознать?

Отсутствует

№35418-02-2016 06:27:30

Shkiperr88
Участник
 
Группа: Members
Зарегистрирован: 17-02-2016
Сообщений: 7
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT пишет

Сессия рекапчи живет 2 минуты

рекапча сразу обновляется, как только скриншотишь ее

Отсутствует

№35518-02-2016 10:03:22

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Shkiperr88
У меня такая строчка, ничего не обновляет, как ушла, так и пришла и вставилось все нормально

Отсутствует

№35618-02-2016 10:57:18

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Мэтры, объясните пожалуйста такую непонятку.

скрытый текст

3bb47c0c6f8b8b8c85ad0eb1e565a73a.jpg

У меня скрипт решает капчу, через гугло поиск,
насколько эффективно, другой вопрос, нормально, меня устраивает.
Иногда капча повисает, выдает ошибку как на картинке, и скрипт решает ее
количество раз, сколько задано в алгоритме, капча не обновляется, скрипт
«решает» только ее.
Ошибка такая:
Ошибка:недействительные параметры API. Перезагрузите страницу.
Можно ли это обойти?
Спасибо.

Отредактировано Egorushka1974 (18-02-2016 11:12:24)

Отсутствует

№35718-02-2016 11:21:44

melena083
Забанен
 
Группа: Members
Зарегистрирован: 15-12-2015
Сообщений: 26
UA: IE 8.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Egorushka1974

скрытый текст

один из вариантов  значение za конечно своё у тебя будет(это пример просто)

скрытый текст

у тебя на картинке ясно видно что просит сделать не одно задание или выбрать все картинки и тогда капча не поменяется так как ответ по ней не дан полностью,тогда поможет вот это(значение ‘style=»outline’ подходит ко всем этим трем требованиям что появляются в низу капчи),и капча сменится,а так просто пока у тебя скрипт гонял картинки по гуглу сессия сгорела уже,и тогда тебе просто нужно перезапустить страницу всего сайта и все по новой делать

Отредактировано melena083 (18-02-2016 11:57:06)

Отсутствует

№35818-02-2016 11:32:16

Shkiperr88
Участник
 
Группа: Members
Зарегистрирован: 17-02-2016
Сообщений: 7
UA: Firefox 44.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Egorushka1974 пишет

скрытый текст

у меня таким образом только подложку, без картинок скриншотит(( а с предыдущей строчкой

капчу копирует, но она обновляется, сразу как скопировал. Даже не знаю что и делать:(

Отсутствует

№35918-02-2016 12:08:07

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

melena083
спасибо за подсказки, буду реализовывать.
Что касается сгоревшей капчи, пока по гуглопоиску гоняет, если не решилась капча, то она обновляется, а ищет он секунд за 40 все 9 картинок.
Но все равно спасибо.

Добавлено 18-02-2016 12:14:10

Shkiperr88 пишет

капчу копирует, но она обновляется, сразу как скопировал.

Может я ошибаюсь, посмотри нет ли у тебя после копирования такого «#recaptcha-reload-button» BUTTON=0
может потому и обновляет, а вообще выложи кусок кода до и после копирования, посмотрит народ.
И глянь первые посты ветки, там рабочий скрипт лежит от ПРЕЗИДЕНТА, сравни со своим.

Отредактировано Egorushka1974 (18-02-2016 12:17:54)

Отсутствует

№36018-02-2016 12:31:03

melena083
Забанен
 
Группа: Members
Зарегистрирован: 15-12-2015
Сообщений: 26
UA: Firefox 27.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Egorushka1974

скрытый текст

я это и имел ввиду что когда нет возможности найти правильный ответ тогда капча и стоит на месте без обновления,ну к примеру просит выбрать все картинки а гугл не дает тебе их все для ответа вот тогда и сгорает сессия так как капча всё время стоит одна и таже,в таких случаях можно просто даже не перезагружать капчу а просто во втором варианте(что выложил)не делать перезапуск капчи а добавить ещё один ответ по картинке любой и она сама обновится сразу,это тоже хорошо срабатывает и есть вариант попадания на верный ответ,так что думай сам это так мысли вслух

Отредактировано melena083 (18-02-2016 12:42:49)

Отсутствует

№36118-02-2016 12:55:42

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

melena083

melena083 пишет

а знаки ,улицы,указатели можно вообще пропускать вставив вот такое на пример

скрытый текст

Спасибо за науку, на это у меня есть может не такое изящное, но решение, у меня есть
набор ключевых слов из заголовков капчей, по которым скрипт определяет, что решать, и там
если есть ключевое слово, скрипт решает капчу через гуглопоиск, если нет он обновляет капчу.
дорожные знаки и улицы и указатели в ключевых словах отсутствуют, их скрипт игнорирует.
Там зависит все от того насколько точно подобраны эти слова, но за 5 попыток решается в итоге 80% капчей.

Отсутствует

№36218-02-2016 12:57:18

raileb
Участник
 
Группа: Members
Зарегистрирован: 18-02-2016
Сообщений: 3
UA: Chrome 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Отредактировано raileb (18-02-2016 15:58:02)

Отсутствует

№36318-02-2016 13:01:14

Shkiperr88
Участник
 
Группа: Members
Зарегистрирован: 17-02-2016
Сообщений: 7
UA: Firefox 44.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

вот код

Отредактировано Shkiperr88 (18-02-2016 13:33:10)

Отсутствует

№36418-02-2016 13:07:05

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

raileb пишет

при воспроизведении кода, галочка не ставится
какой код вы используете для нажатия на галочку?

Нужно еще номер фрейма найти, без него не видит.
Посмотри первый пост ветки, там все есть.

Добавлено 18-02-2016 13:08:58
Shkiperr88
Код запихай в спойлер, админ будет ругаться.
Выдели все нажми Code потом еще раз все выдели и нажми Spoiler

Отредактировано Egorushka1974 (18-02-2016 13:09:29)

Отсутствует

№36518-02-2016 13:18:38

melena083
Забанен
 
Группа: Members
Зарегистрирован: 15-12-2015
Сообщений: 26
UA: Firefox 27.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Egorushka1974

скрытый текст

я видел твой код,ты его выкладывал,это уже дело вкуса,просто дал совет и всё,зачем к примеру столько парса в скрипте если всё это можно и не проделывать а только то что нужно,но это только мнение а не совет,я не пошол таким путем по разгадыванию рекапчи, но твой вариант отличный скажу не кривя,

вот кто то спрашивал по звуковой проверке рекапчи,тут осталось вам сделать сущие пустяки практически,всё уже есть и не в одном варианте, тоже просто набросок ,решать каждому самому,нужен или нет

Отредактировано melena083 (18-02-2016 13:20:50)

Отсутствует

№36618-02-2016 13:32:05

Shkiperr88
Участник
 
Группа: Members
Зарегистрирован: 17-02-2016
Сообщений: 7
UA: Firefox 44.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Отсутствует

№36718-02-2016 13:33:12

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

melena083

скрытый текст

Если честно, код не мой. Я писал в том посте. Я довольно посредственный программист, так чужое почистить, протестировать,
логику работы проверить, ошибки поискать. Автор скрипта известен под ником mmmaks2004 на форуме.
У нас с ним симбиоз, он мне скрипт, я его гоняю, ищу глюки, ошибки, он правит, пользуемся оба.
Ну и на форуме по скрипту вопросы задаю, конечно многому, чего раньше не умел, научился, но пока создать
нечто подобного уровня неспособен.
Я увы тока через пару лет до этого уровня дойду.
Звуковая капча у нас тоже есть, даже объединена в один скрипт, если картинками не сломали решает звуковую, или
всякие знаки указатели на нее переводим.
не смотря на все ваши подсказки с ПРЕЗИДЕНТОМ, пока не получается повторить ваш результат по рекапче.

Отсутствует

№36818-02-2016 16:41:14

Koks
Участник
 
Группа: Members
Зарегистрирован: 02-10-2015
Сообщений: 151
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

melena083
я правильно вставил этот код?

браузер начинает вылетать

заменил на этот код перестал вылетать

Отредактировано Koks (18-02-2016 18:29:36)

Отсутствует

№36918-02-2016 18:43:12

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 44.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Почувствуй себя богатым !!! :)
Один из вариантов взлома капчь.

Наблюдайте и радуйтесь как растёт баланс.
Что за фигня не знаю, но баланс растёт прикольно.;)
Просто кто то в личку просил тамошнюю детскую капчу сломать,
вот я игрался, сразу и скриптик сляпал.

А капча там действительно детская,
вот бы везде такая была, был бы рай для ботов.
:)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

№37018-02-2016 18:54:28

melena083
Забанен
 
Группа: Members
Зарегистрирован: 15-12-2015
Сообщений: 26
UA: Firefox 27.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Koks

скрытый текст

всё правильно ,я же не говорил что именно этот код подойдет тебе,а как вариант просто дал,у меня к примеру вот смотри и фрейм капчи совсем по иному ищется ,и этот вариант работает именно с капчами которые на сайте только девять картинок высвечивают и не каких больше,постоянно девять ,а браузер у тебя  даже и не понимаю причем тут выбрасывает,что то не  то ты говоришь,причем тут уже браузер если у тебя уже стоит капча на сайте и ты по ней уже работаешь ,смотри значить где то функция смены у тебя завалялась между строк,а для такой как у меня идет код то и подменивать его не нужно,она всегда будет стоять такая

Отредактировано melena083 (18-02-2016 18:59:53)

Отсутствует

№37118-02-2016 19:38:37

Koks
Участник
 
Группа: Members
Зарегистрирован: 02-10-2015
Сообщений: 151
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

melena083
зато мой вариант и с  16 картинками справляется

Отсутствует

№37218-02-2016 20:08:48

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Здравствуйте! На счет флеш-плеер-капчи на солвемедия. Вот можно вызывать эту капчу (кнопку Плей) разными способами. Например сменой IP-адреса и подменой юзер агента. Есть и другие способы, более мудрёные.
Но как быть если сайт никогда не выдает Плей-флеш-солвемедия-капчу, даже не смотря на смену IP и подмену агента. Может ли быть такое, чтоб адимны сайта просто-напросто ставили запрет у себя на серваках появляться такой Плей-капче на сайтах?
Можно ли, в принципе, как-то вызывaть Плей-солвемедия капчу на таких сайтах, где кнопка Плей никогда не появляется в обычных условиях?

Отредактировано dvitkovs (18-02-2016 23:36:24)

Отсутствует

№37318-02-2016 20:14:06

melena083
Забанен
 
Группа: Members
Зарегистрирован: 15-12-2015
Сообщений: 26
UA: Firefox 27.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Koks я тебе в личку отправил видео,думаю так будет понятней

Отсутствует

№37418-02-2016 21:31:59

Egorushka1974
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 180
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT пишет

Чёто сайт фигня какая то, но ради прикола регнитесь, это 10 сек займёт, и запустите скрипт

скрытый текст

Фигня полная, скрипт наколотил 7500 рэ минут за 15, а потом началось, купите рефералов, бла бла бла…………..

Отсутствует

№37518-02-2016 21:49:38

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 44.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Egorushka1974
Смысл поста, показать один из вариантов взлома капчи, хотя там и ломать то нечего:)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

№37619-02-2016 09:51:41

Shkiperr88
Участник
 
Группа: Members
Зарегистрирован: 17-02-2016
Сообщений: 7
UA: Chrome 48.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Подскажите а как отлавливать такие кнопки?

Отредактировано Shkiperr88 (19-02-2016 09:52:36)

Отсутствует

Оптимизируйте свои подборки

Сохраняйте и классифицируйте контент в соответствии со своими настройками.

В этом документе указаны некоторые коды ошибок и сообщения о них, получаемые от API Google. В список включены те ошибки, которые относятся к глобальному (используемому по умолчанию) домену для API Google. Многие API также определяют собственные домены, в которых могут быть свои ошибки, отсутствующие в глобальном домене. У таких ошибок в ответе JSON будет указано значение свойства domain, относящееся к конкретному API, например youtube.parameter.

На этой странице перечислены ошибки, систематизированные по кодам статуса HTTP, определения которых приведены в спецификации RFC 7231.

Вот пример ответа JSON, передающего информацию об ошибке, относящейся к глобальному домену:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidParameter",
    "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]",
    "locationType": "parameter",
    "location": "chart"
   }
  ],
  "code": 400,
  "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]"
 }
}

Ошибки

  1. MOVED_PERMANENTLY (301)
  2. SEE_OTHER (303)
  3. NOT_MODIFIED (304)
  4. TEMPORARY_REDIRECT (307)
  5. BAD_REQUEST (400)
  6. UNAUTHORIZED (401)
  7. PAYMENT_REQUIRED (402)
  8. FORBIDDEN (403)
  9. NOT_FOUND (404)
  10. METHOD_NOT_ALLOWED (405)
  11. CONFLICT (409)
  12. GONE (410)
  13. PRECONDITION_FAILED (412)
  14. REQUEST_ENTITY_TOO_LARGE (413)
  15. REQUESTED_RANGE_NOT_SATISFIABLE (416)
  16. EXPECTATION_FAILED (417)
  17. PRECONDITION_REQUIRED (428)
  18. TOO_MANY_REQUESTS (429)
  19. INTERNAL_SERVER_ERROR (500)
  20. NOT_IMPLEMENTED (501)
  21. SERVICE_UNAVAILABLE (503)

MOVED_PERMANENTLY (301)

Код ошибки Описание
movedPermanently Запрос был отправлен на URL, который больше нельзя использовать. Все запросы для той же операции теперь необходимо отправлять на URL, указанный в заголовке Location полученного ответа.

SEE_OTHER (303)

Код ошибки Описание
seeOther Запрос успешно обработан. Чтобы получить ответ, отправьте запрос GET на URL, указанный в заголовке Location.
mediaDownloadRedirect Запрос успешно обработан. Чтобы получить ответ, отправьте запрос GET на URL, указанный в заголовке Location.

NOT_MODIFIED (304)

Код ошибки Описание
notModified Условие, заданное для заголовка If-None-Match, не было выполнено. Этот ответ означает, что запрошенный документ не был изменен и что должен быть получен кешированный ответ. Проверьте значение заголовка If-None-Match в HTTP-запросе.

TEMPORARY_REDIRECT (307)

Код ошибки Описание
temporaryRedirect Чтобы ваш запрос был обработан, повторно отправьте его на URL, указанный в заголовке Location этого ответа.

BAD_REQUEST (400)

Код ошибки Описание
badRequest Запрос к API недействителен или неправильно сформирован. Поэтому сервер API не может его распознать.
badBinaryDomainRequest Двоичный запрос к домену недействителен.
badContent Тип данных запроса или тип контента части пакетного запроса не поддерживается.
badLockedDomainRequest Запрос к заблокированному домену недействителен.
corsRequestWithXOrigin Запрос CORS содержит заголовок X-Origin XD3, то есть этот запрос составлен неправильно.
endpointConstraintMismatch Обработать запрос не удалось, так как он не соответствует указанному API. Убедитесь, что вы указали правильный URL.
invalid Обработать запрос не удалось, так как он содержал недопустимое значение. Это может быть значение параметра, заголовка или свойства.
invalidAltValue В значении параметра alt указан неизвестный формат вывода.
invalidHeader Обработать запрос не удалось, так как он содержал недопустимый заголовок.
invalidParameter Обработать запрос не удалось, так как он содержал недопустимый параметр или значение параметра. Чтобы определить, какие параметры можно использовать для запроса, изучите документацию API.
invalidQuery Запрос недействителен. Узнайте, какие параметры можно использовать для запроса, и убедитесь, что запрос не содержит недопустимую комбинацию параметров или недействительные значения параметров. Для этого изучите документацию API. Проверьте значение параметра q.
keyExpired Срок действия ключа API, указанного в запросе, истек. Это означает, что сервер API не может проверить лимит квоты для приложения, отправляющего запрос. Чтобы узнать больше или получить новый ключ, перейдите в Google Developers Console.
keyInvalid Указанный в запросе ключ API недействителен. Это означает, что сервер API не может проверить лимит квоты для приложения, отправляющего запрос. Попробуйте найти ключ с помощью Google Developers Console или получите новый.
lockedDomainCreationFailure Токен OAuth был получен в строке запроса. API запрещает это для всех форматов ответа, кроме JSON и XML. Попробуйте отправить токен OAuth в заголовке Authorization.
notDownload На URL типа /download/* могут быть отправлены только запросы на скачивание мультимедиа. Отправьте запрос на тот же адрес, но без префикса /download.
notUpload На URI с префиксом /upload/* можно отправлять только запросы на загрузку. Ваш запрос не относится к их числу, поэтому обработать его не удалось. Отправьте запрос на тот же адрес, но без префикса /upload.
parseError Сервер API не может обработать тело запроса.
required В запросе отсутствует обязательная информация. Возможно, это параметр или свойство ресурса.
tooManyParts Обработать пакетный запрос не удалось, так как в нем слишком много частей.
unknownApi API, к которому обращается запрос, не распознан.
unsupportedMediaProtocol Медиапротокол клиента не поддерживается.
unsupportedOutputFormat В значении параметра alt указан формат вывода, который не поддерживается этим сервисом. Проверьте значение параметра запроса alt.
wrongUrlForUpload Обработать запрос на загрузку не удалось из-за неправильного URI. Такие запросы можно отправлять только на URI с префиксом /upload/*. Отправьте запрос на тот же адрес, но с префиксом /upload.
Код ошибки Описание
unauthorized У пользователя нет прав для выполнения этого запроса.
authError Для запроса указаны неправильные учетные данные. Проверьте значение заголовка Authorization в HTTP-запросе.
expired Время сеанса истекло. Проверьте значение заголовка Authorization в HTTP-запросе.
lockedDomainExpired Обработать запрос не удалось, так как истек срок действия заблокированного домена.
required Для выполнения этого запроса к API пользователю необходимо войти в систему. Проверьте значение заголовка Authorization в HTTP-запросе.

PAYMENT_REQUIRED (402)

Код ошибки Описание
dailyLimitExceeded402 Достигнут дневной лимит бюджета, установленный разработчиком.
quotaExceeded402 Для запрошенной операции необходимо больше ресурсов, чем доступно по квоте. Чтобы выполнить эту операцию, требуется платеж.
user402 Чтобы выполнить запрошенную операцию, требуется платеж от аутентифицированного пользователя.

FORBIDDEN (403)

Код ошибки Описание
forbidden Запрошенная операция запрещена, и ее нельзя завершить.
accessNotConfigured Для вашего проекта не настроен доступ к этому API. Активируйте API для проекта в Google Developers Console.
accessNotConfigured Проект заблокирован из-за нарушения правил. См. http://support.google.com/code/go/developer_compliance.
accessNotConfigured Проект подлежит удалению.
accountDeleted Аккаунт, связанный с указанными в запросе учетными данными, был удален. Проверьте значение заголовка Authorization в HTTP-запросе.
accountDisabled Аккаунт, связанный с указанными в запросе учетными данными, был отключен. Проверьте значение заголовка Authorization в HTTP-запросе.
accountUnverified Адрес электронной почты пользователя, делающего запрос, не подтвержден. Проверьте значение заголовка Authorization в HTTP-запросе.
concurrentLimitExceeded Обработать запрос не удалось, так как достигнут лимит параллельных соединений.
dailyLimitExceeded Достигнут ежедневный лимит квоты для API.
dailyLimitExceeded Достигнут ежедневный лимит квоты, и проект заблокирован из-за нарушения правил. Подробную информацию можно найти на форуме поддержки по правилам API Google.
dailyLimitExceededUnreg Обработать запрос не удалось, так как достигнут предел анонимного использования API в день. Чтобы продолжить работу с API, войдите в Google Developers Console.
downloadServiceForbidden API не поддерживает скачивание.
insufficientAudience Запрос не может быть выполнен для этой аудитории.
insufficientAuthorizedParty Запрос не может быть выполнен для этого приложения.
insufficientPermissions У аутентифицированного пользователя недостаточно прав для выполнения этого запроса.
limitExceeded Запрос нельзя выполнить из-за ограничений по доступу или частоте.
lockedDomainForbidden API не поддерживает заблокированные домены.
quotaExceeded Для запрошенной операции необходимо больше ресурсов, чем доступно по квоте.
rateLimitExceeded В течение определенного промежутка времени было отправлено слишком много запросов.
rateLimitExceededUnreg Превышен лимит частоты запросов. Чтобы продолжить использование API, зарегистрируйте приложение. Для этого создайте аккаунт, используя Google Developers Console.
responseTooLarge Невозможно получить запрошенный ресурс, так как его размер слишком велик.
servingLimitExceeded Достигнут лимит на частоту запросов для этого API.
sslRequired Эта операция возможна только с применением SSL.
unknownAuth Сервер API не распознает схему авторизации, используемую для запроса. Проверьте значение заголовка Authorization в HTTP-запросе.
userRateLimitExceeded Обработать запрос не удалось, так как частота запросов от этого пользователя превышает допустимую.
userRateLimitExceededUnreg Обработать запрос не удалось, так как достигнут предел частоты запросов от этого пользователя и в запросе не указан разработчик клиента. Создайте проект для вашего приложения в Google Developer Console (https://console.developers.google.com).
variableTermExpiredDailyExceeded Обработать запрос не удалось, так как истек срок действия временной квоты и была исчерпана стандартная дневная.
variableTermLimitExceeded Обработать запрос не удалось, так как была исчерпана временная квота, действующая в указанный период.

NOT_FOUND (404)

Код ошибки Описание
notFound Не удалось выполнить операцию, так как не найден ресурс, указанный в запросе.
notFound Не найден ресурс, указанный в запросе. Если вы не пользовались этим API в последние две недели, выполните повторное развертывание приложения App Engine и попробуйте вызвать API ещё раз.
unsupportedProtocol Не поддерживается протокол, используемый в запросе.

METHOD_NOT_ALLOWED (405)

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

CONFLICT (409)

Код ошибки Описание
conflict Не удалось выполнить запрос к API, так как запрошенная операция может вызвать конфликт с уже существующим объектом. Например, это случается, если запрашивается создание повторяющегося элемента, однако при таких конфликтах, как правило, ошибки диагностируются более конкретно.
duplicate Не удалось выполнить запрошенную операцию, так как она требует создания уже существующего ресурса.

GONE (410)

Код ошибки Описание
deleted Обработать запрос не удалось, так как указанный в нем ресурс был удален.

PRECONDITION_FAILED (412)

Код ошибки Описание
conditionNotMet Не было выполнено условие, заданное для заголовка If-Match или If-None-Match в HTTP-запросе. Чтобы узнать больше, прочитайте раздел ETag спецификации HTTP. Проверьте значение заголовка If-Match.

REQUEST_ENTITY_TOO_LARGE (413)

Код ошибки Описание
backendRequestTooLarge Слишком большой запрос.
batchSizeTooLarge Пакетный запрос содержит слишком много элементов.
uploadTooLarge Обработать запрос не удалось, так как в нем слишком много данных.

REQUESTED_RANGE_NOT_SATISFIABLE (416)

Код ошибки Описание
requestedRangeNotSatisfiable В запросе указан недопустимый диапазон.

EXPECTATION_FAILED (417)

Код ошибки Описание
expectationFailed Сервер не может выполнить запрос клиента.

PRECONDITION_REQUIRED (428)

Код ошибки Описание
preconditionRequired Запрос должен содержать условие. Укажите в запросе заголовки If-Match или If-None-Match, чтобы он был успешно обработан.

TOO_MANY_REQUESTS (429)

Код ошибки Описание
rateLimitExceeded В течение определенного промежутка времени отправлено слишком много запросов.

INTERNAL_SERVER_ERROR (500)

Код ошибки Описание
internalError Не удалось обработать запрос из-за внутренней ошибки.

NOT_IMPLEMENTED (501)

Код ошибки Описание
notImplemented Запрошенная операция не была реализована.
unsupportedMethod Обработать запрос не удалось, так как для этого необходимо выполнить неизвестный метод или операцию.

SERVICE_UNAVAILABLE (503)

Код ошибки Описание
backendError Произошла ошибка серверного кода.
backendNotConnected Обработать запрос не удалось из-за ошибки подключения.
notReady Сервер API не готов принимать запросы.

Ошибки, связанные непосредственно с Indexing API

Во всех описанных ниже ситуациях запрос отклоняется, а Googlebot не сканирует соответствующий URL. То же происходит в случае основных ошибок.

BAD_REQUEST (400)

Сообщение об ошибке Описание
Missing attribute. 'url' attribute is required. Пользователь не указал URL в запросе.
Invalid attribute. 'url' is not in standard URL format Пользователь ввел некорректный URL, например «abcd».
Unknown type. 'type' attribute is required and must be 'URL_REMOVED' or 'URL_UPDATED'. Пользователь не указал тип уведомления.
Invalid value at 'url_notification.type' (TYPE_ENUM) Пользователь указал в типе уведомления не URL_REMOVED или URL_UPDATED, а другое значение.

FORBIDDEN (403)

Сообщение об ошибке Описание
Permission denied. Failed to verify the URL ownership. Пользователь не прошел процедуру подтверждения права собственности или пытается обновить URL, который ему не принадлежит.

TOO_MANY_REQUESTS (429)

Сообщение об ошибке Описание
Insufficient tokens for quota 'indexing.googleapis.com/default_requests' Пользователь исчерпал свою квоту Indexing API.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2022-03-29 UTC.


Содержание:

  • Общие сведения
  • Формат ошибок
    • Формат ответа методов API в случае ошибок
      • Структура ответа
      • Описание параметров
  • Описание общих ошибок API

Общие сведения

В документе описан формат ошибок методов API, а также приведен перечень общих ошибок, которые могут возникать при обращении к методам API.

Формат ошибок

Формат ответа методов API в случае ошибок

Структура ответа

  • JSON
  • XML
{  
   "metadata":{  
      "status":400,
      "detail":"abc",
      "generated_at":"2015-06-18 12:37:28"
   },
   "errors":[  
      {  
         "code":281016,
         "title":"ошибка упрощённой отправки",
         "detail":"контрагент с минимальным набором данных не может быть отправителем по заказу",
         "link":"https://dev.dellin.ru/api/ordering/request/#error_281016",
         "fields":["receiver"]
      },
      {  
         "code":281017,
         "title":"Недопустимое значение параметра",
         "detail":"Данный параметр может содержать только значения из списка доступных значений",
         "link":"https://dev.dellin.ru/api/ordering/request/#error_281017",
         "fields":["requester"],
         "validValues":[1, 2, 3]
      },
      {  
         "code":117004,
         "title":"значение не найдено в справочнике",
         "detail":"необходимо выбрать значение из соответствующего справочника",
         "link":"https://dev.dellin.ru/calculation/pickup/#error_117004",
         "fields":["requester"],
         "badValues":["0xa77fcf6a449164ed490133777a68bd00"]
      }
   ]
}
<response>
   <metadata>
      <status>400</status>
      <detail>abc</detail>
      <generated_at>2015-06-18 12:37:28</generated_at>
   </metadata>
   <errors>
      <code>281016</code>
      <title>ошибка упрощённой отправки</title>
      <detail>контрагент с минимальным набором данных не может быть отправителем по заказу</detail>
      <link>https://dev.dellin.ru/api/ordering/request/#error_281016</link>
      <fields>receiver</fields>
   </errors>
   <errors>
      <code>281017</code>
      <title>Недопустимое значение параметра</title>
      <detail>Данный параметр может содержать только значения из списка доступных значений</detail>
      <link>https://dev.dellin.ru/api/ordering/request/#error_281017</link>
      <fields>requester</fields>
      <validValues>1</validValues>
      <validValues>2</validValues>
      <validValues>3</validValues>
   </errors>
   <errors>
      <code>117004</code>
      <title>значение не найдено в справочнике</title>
      <detail>необходимо выбрать значение из соответствующего справочника</detail>
      <link>https://dev.dellin.ru/calculation/pickup/#error_117004</link>
      <fields>requester</fields>
      <badValues>0xa77fcf6a449164ed490133777a68bd00</badValues>
   </errors>
</response>

Описание параметров

Response
Параметр Тип Описание
metadata object Информация об оформленной заявке
metadata.status integer

Эмуляция http-кода состояния

metadata.detail string Текстовое описание ответа сервера
metadata.generated_at string Дата и время генерации ответа сервера
errors array of Response.Errors Перечень ошибок
Response.Errors
Параметр Тип Описание
code integer Номер ошибки
title string

Краткое описание ошибки

detail string Детальное описание ошибки
link string Ссылка на документацию
fields array of string Список параметров в запросе к методу, вызвавших ошибку
validValues array of string Список доступных значений параметра
badValues array of string Список ошибочных значений, переданных в параметре
Номер ошибки http-код Краткое описание ошибки Детальное описание ошибки

100001

415 Некорректный content-type Допустимые значения content-type: application/json (стандарт RFC4627) и text/xml (стандарт RFC3023)

100002

404 Метод не найден Проверьте правильность адреса метода

100003

410 Метод отключен Запрошенный метод более не доступен

100004

403 Отсутствует доступ к методу Доступ к методу предоставляется по требованию. Для получения доступа обратитесь к персональному менеджеру или в техническую поддержку

100005

429 Количество запросов к превышено Превышена допустимая частота запросов. Для увеличения лимита обратитесь к персональному менеджеру или в техническую поддержку

100006

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

101001

401 Требуется авторизация Не передан API-ключ

101002

401 Требуется авторизация Передан недействительный API-ключ

101003

401 Требуется авторизация Требуется передать параметр sessionID

101004

401 Требуется авторизация Время жизни сессии истекло

101005

401 Требуется авторизация Сессия не найдена или создана с другим API-ключом

101006

401 Требуется авторизация Неверный логин или пароль

101007

401 Требуется авторизация API-ключ заблокирован. Обратитесь в техническую поддержку

101008

401 Ошибка парсинга Запрос не соответствует формату json

101009

401 Ошибка парсинга Запрос не соответствует формату xml

110001

400 Неверный формат параметра Значение, переданное в параметре, не соответствует требуемому формату

110002

400 Ошибка типизации Значение, переданное в параметре, имеет некорректный тип

110003

400 Отсутствует обязательный параметр Отсутствует обязательный параметр

110004

400 Не передан ни один из обязательных параметров В запросе должен присутствовать хотя бы один параметр из совокупности, однако не указано ни одного

110005

400 Допустима передача только одного из параметров Указаны взаимоисключающие параметры, только один из которых может присутствовать в запросе

110006

400 Превышено ограничение на длину списка Количество элементов в списке превышает максимально допустимое

110007

400 Объект не существует Не найден объект с указанным ID. Проверьте правильность переданного значения

110008

400 Недопустимый набор параметров Указанные параметры не должны участвовать в запросе

120001

500 Внутренняя ошибка сервера

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

(Причина: Сервис calculateCustomers не отвечает)

120002

500 Внутренняя ошибка сервера

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

(Причина: Сервис calculateCustomers вернул неизвестную ошибку)

120101

500 Внутренняя ошибка сервера

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

(Причина: Сервис calculateCustomersV2 не отвечает)

120102

500 Внутренняя ошибка сервера

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

(Причина: Сервис calculateCustomersV2 вернул неизвестную ошибку)

120201

400 Ошибка в параметрах запроса

Переданы неправильные параметры в запрос

(Причина: Переданы некорректные данные в getOrdersTracker)

120301

500 Внутренняя ошибка сервера

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

(Причина: Сервис getPaymentsByOrders не отвечает)

121001

500 Внутренняя ошибка сервера

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

121002

500 Внутренняя ошибка сервера

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

130001

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

130002

400 Ошибка выполнения запроса Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130003

400 Указан некорректный документ, удостоверяющий личность Проверьте правильность переданных значений

130004

400 Не передан ни один из обязательных параметров

В запросе должен присутствовать хотя бы один параметр из совокупности, однако не указано ни одного

130005

400 Отсутствует обязательный параметр Отсутствует обязательный параметр

130006

400 Значение превышает допустимое Габариты превышают допустимые размеры

130007

400 Неверный формат параметра Значение, переданное в параметре, не соответствует требуемому формату

130008

400

Недопустимое значение параметра Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130009

400 Превышено ограничение на длину значения Превышена максимально допустимая длина значения поля

130010

400 Отсутствует согласие с тарифами и правилами перевозки Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130014

400 Ошибка наложенного платежа Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130015

400 Ошибка оформления услуги Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130017

400 Невозможно оформить заявку на указанное время

130021

400 Услуга недоступна Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130022

400 Указан некорректный адрес Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

130023

400 Выбран недопустимый терминал Выбран недопустимый терминал

130024

400 Превышено ограничение на длину списка Превышено максимальное количество контрагентов в адресной книге (10000). Необходимо удалить часть записей или обратиться в службу поддержки

150001

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

150002

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

180001

400 Указан некорректный документ, удостоверяющий личность Проверьте правильность переданных значений

180002

400 Указан некорректный адрес Указан некорректный адрес

180003

400 Выбран недопустимый терминал Выбранный терминал не может принять груз с указанными ВГХ

180004

400 Услуга недоступна Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180005

400 Значение превышает допустимое Весогабаритные характеристики груза превышают допустимые для приёма на терминалах города

180006

400 Ошибка в параметрах запроса Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180007

400 Недопустимое значение параметра Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180008

400 Ошибка упрощенной отправки Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180009

400 Ошибка оформления услуги Доставка в день заказа Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180010

400 Ошибка оформления услуги Доставка в точное время Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180011

400 Указан некорректный период работы Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180012

400 Выбранная дата недоступна Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180013

400 Ошибка параметров оплаты Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180014

400 Ошибка наложенного платежа Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180015

400 Ошибка оформления услуги Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180016

400 Ошибка при сохранении заявки Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

180017

400 Невозможно оформить заявку на указанное время Детальное описание ошибки содержит уточняющую информацию. Текст варьируется в зависимости от проверяемого параметра

Коды статусов и ошибок

Коды состояния и ошибок — это число в заголовке ответа, который указывает общую классификацию ответа — например, был ли запрос успешным (200), привел ли к ошибке сервера (500), были ли проблемы с авторизацией (403), и так далее. Стандартные коды состояния обычно не требуют большого количества документации, но пользовательские коды состояния и ошибки, специфичные для API, нужны. Коды ошибок, в частности, помогают в устранении неисправных запросов.

Содержание раздела

Пример кода статуса в заголовке curl

Где перечислять HTTP-ответ и коды ошибок

Где взять коды статусов и ошибок

Как перечислить коды состояния

Коды состояния и ошибок помогают в устранении неполадок

Примеры кодов статусов и шибок

  • Context.io

  • Twitter

  • Mailchimp

  • Flickr

Практическое занятие: Коды статусов и ошибок

Пример кода статуса в заголовке curl

Коды статусов не отображаются в тебе ответа. Они содержатся в хэдере, который может быть не видим по умолчанию.

Помните, когда мы отправляли обратный вызов в разделе Создание curl запроса? Чтобы получить заголовок ответа, добавляем —include или -i к запросу curl. Если нужно, чтобы в ответе возвращался только заголовок ответа (и ничего больше), используем заглавную букву -I, например:

curl -I -X GET "https://api.openweathermap.org/data/2.5/weather?zip=95050&appid=fd4698c940c6d1da602a70ac34f0b147&units=imperial"

Заголовок ответа выглядит следующим образом:

HTTP/1.1 200 OK    
Server: openresty
Date: Thu, 06 Dec 2018 22:58:41 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 446
Connection: keep-alive
X-Cache-Key: /data/2.5/weather?units=imperial&zip=95050
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST

Первая строка, HTTP / 1.1 200 OK, сообщает нам статус запроса (200). Большинство API REST следуют стандартному протоколу для заголовков ответов. Например, 200 — это не просто произвольный код, выбранный разработчиками OpenWeatherMap API. 200 — это общепринятый код для успешного HTTP-запроса. (Если изменить метод, то получим другой код состояния.)

С помощью запроса GET довольно легко определить, успешен ли запрос, потому что получаем ожидаемый ответ. Но предположим, делаем запрос POST, PUT или DELETE, когда мы меняем данные, содержащиеся в ресурсе. Как узнать, был ли запрос успешно обработан и получен API? Коды ответа HTTP в заголовке ответа будут указывать, была ли операция успешной. Коды состояния HTTP — это просто сокращения длинных сообщений.

codes

Коды состояния довольно тонкие, но когда разработчик работает с API, коды могут быть единственным «интерфейсом», который имеет разработчик. Если получится контролировать сообщения, которые видит разработчик, это будет большой победой юзабилити.

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

Можно посмотреть список общих кодов состояния REST API здесь и общий список кодов HTTP статусов здесь. Хотя, возможно, было бы полезно включить несколько стандартных кодов состояния, нет необходимости в полном документировании всех стандартных кодов состояния, особенно если они редко запускаются в API.

Где перечислять HTTP-ответ и коды ошибок

Практичнее, если API будут иметь одну страницу с ответами и кодами ошибок ко всему API. Отдельная страница с перечнем кодов состояния (вместо добавления кода состояния в каждую конечную точку) позволяет более детально описать каждый код без переполнения других частей документации. Такой подход уменьшает избыточность и ощущение информационной перегрузки.

С другой стороны, если какие-то коды состояния и ошибок больше подходят к определенным конечным точкам, чем другие, имеет смысл вывести такие коды состояния и ошибок на страницы с описаниями конечных точек.

Такая стратегия может заключаться в том, чтобы привлечь внимание к каким-либо особенно важным кодам состояния или ошибок для конкретной конечной точки, а затем перейти к централизованной странице «Коды ответов и состояний» для получения полной информации.

Где взять коды статусов и шибок

Коды состояния и ошибок могут быть неочевидны в документации API. Вероятно, придется попросить разработчиков предоставить список всех кодов состояния и ошибок, которые уникальны для API. Иногда разработчики хардкодят коды состояния и ошибок непосредственно в программном коде, и у них нет простых способов передать полный список (что также затрудняет локализацию).

В результате может потребоваться танцы с бубнами, чтобы найти все коды. В частности, возможно придется сломать API, чтобы увидеть все возможные коды ошибок. Например, если превысить ограничение скорости для определенного запроса, API может вернуть специальную ошибку или код состояния. Такой пользовательский код обязательно нужно задокументировать. В разделе устранения неполадок в API можно специально разместить примеры получения кодов ошибок.

Как перечислить коды состояния

Коды статусов и ошибок можно привести в виде списка определений или таблицы, например так:

Status code Значение
200 Успешный запрос и ответ
400 Неверно заданные параметры или другой неверный запрос

Коды состояния и ошибок помогают в устранении неполадок

Коды состояния и ошибок особенно полезны при устранения неполадок. Таким образом, можно рассматривать коды ошибок как дополнение к разделу по устранению неполадок.

Каждая часть документации может быть полезна в разделе, посвященном устранению неполадок. В разделе, посвященном устранению неполадок, можно описать, что происходит, когда пользователи уходят с проторенной дорожки и спотыкаются в темном лесу. Коды состояния похожи на подсказки, которые помогут пользователям вернуться на правильный путь.

В разделе по устранению неполадок можно перечислить сообщения об ошибках, связанных со следующими ситуациями:

  • использование неправильных API ключей;
  • использование неверных API ключей;
  • параметры не соответствуют типам данных;
  • API выдает исключение;
  • нет данных для возврата ресурса;
  • превышен предел скорости;
  • параметры находятся за пределами приемлемых максимальной и минимальной границ;
  • обязательный параметр отсутствует в конечной точке.

текст ошибки должен точно документироваться, чтобы она легко появлялась при поиске.

Примеры кодов статусов и ошибок

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

Context.io

conext

Коды статусов и ошибок Conext.io

Clearbit не только документирует стандартные коды состояния, но также описывает уникальные параметры, возвращаемые их API. Большинство разработчиков, вероятно, знакомы с кодами 200, 400 и 500, поэтому эти коды не требуют много пояснений. Но если API имеет уникальные коды, описывать их нужно адекватно и подробно.

Twitter

twitter

Коды статусов и ошибок Twitter

В Twitter не только описывается код и состояние, но также предоставляется полезная информация по устранению неполадок, потенциально помогая в устранении ошибок. Например, про ошибку 500 не просто сказано, что статус относится к неработающей службе, но и есть объяснение: «Обычно это временная ошибка, например, в ситуации высокой нагрузки или если у конечной точки временно возникают проблемы. Посетите форумы разработчиков на случай, если у других возникнут аналогичные проблемы, или повторите попытку позже».

Полезные сообщения такого рода — то, к чему должны стремиться технические писатели в разделе кодов состояния (по крайней мере, делать описания тех кодов, которые указывают на проблемы)

Mailchimp

Mailchimp

Коды статусов и ошибок Mailchimp

Mailchimp предоставляет удобочитаемые и понятные описания сообщений об ошибке. Например, в ошибке 403 вместо того, чтобы просто написать «Запрещено», Mailchimp объясняет причины, по которым можно получить ошибку запрещенного кода. У Mailchimp существует несколько типов ошибок 403. Запрос может быть запрещен из-за отключенной учетной записи пользователя или запроса, направленного не в тот центр обработки данных. В случае ошибки «WrongDataCenter» Mailchimp отмечает, что «она часто связана с неправильно настроенными библиотеками» и ссылается на дополнительную информацию о центрах обработки данных. Такой тип документации кода ошибки очень полезен для пользователей.

Flickr

Flikr

Коды статусов и ошибок Flikr

В Flickr раздел «Коды ответов» встроен в описание каждой адресной темы API. Описания ошибок выглядят короткими. Хотя встраивание кодов ответов в каждую тему делает коды ошибок более заметными, в некоторых случаях такой подход менее полезен. Поскольку он встроен в каждую тему API, описания кодов ошибок должны быть краткими, иначе их содержимое будет перегружено информацией о запросе конечной точки.

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

👨‍💻 Практическое занятие: Коды статусов и ошибок

В своем найденном опен-сорс проекте найдем информацию о кодах статусов и ошибок. Ответим на следующие вопросы:

  • присутствуют описания кодов статусов и ошибок в проекте?
  • где находится информация о кодах статусов и ошибок в контексте документации? Как отдельная тема? Ниже каждой конечной точки? Где-нибудь еще?
  • имеет ли API какой-либо уникальный код статусов и ошибок?
  • помогают ли коды ошибок пользователям восстанавливаться после ошибок?
  • сделаем запрос на одну из конечных точек, затем целенаправленно изменим параметр, чтобы сделать недействительный запрос. Какой код статуса возвращается в ответе? Этот код состояния задокументирован?

🔙

Go next ➡

Стандартные коды ошибок:

Ошибка Значение
unspecified Тип ошибки не указан. Подробности смотрите в сообщении.
invalid_api_key Указан неправильный ключ доступа к API. Проверьте, совпадает ли значение api_key со значением, указанным в личном кабинете.
access_denied Доступ запрещён. Проверьте, включён ли доступ к API в личном кабинете и не обращаетесь ли вы к методу, прав доступа к которому у вас нет.
unknown_method Указано неправильное имя метода.
invalid_arg Указано неправильное значение одного из аргументов метода.
not_enough_money Не хватает денег на счету для выполнения метода.
retry_later Временный сбой. Попробуйте ещё раз позднее.
api_call_limit_exceeded_for_api_key Сработало ограничение по вызову методов API в единицу времени. На данный момент это 1200 вызовов в минуту. Для метода sendEmail — 60.
api_call_limit_exceeded_for_ip Сработало ограничение по вызову методов API в единицу времени. На данный момент это 1200 вызовов в минуту. Для метода sendEmail — 60.

Частые ошибки без указания типа:

Ошибка Значение
«These list ids=»…» has no confirmation letters» Не создано письмо подтверждение для списка, на который подписывается адресат. Откройте в личном кабинете список контактов на который настроена подписка, внизу слева есть пункт «Инструменты подписки и отписки». Заполните все поля на этой странице и сохраните. Инструкция по созданию письма подтверждения.
“Contacts test@example.org and +77777777 already exist but owned by different subscribers” Вы добавляете email и телефон контакта, который уже есть в вашем кабинете. Укажите email или телефон, который не принадлежит другому адресату.
«Call to a member function getMessage() on boolean» Вызов осуществляется с одновременным использованием методов GET и POST. Выполняйте запрос только одним из данных методов.

Кроме этих ошибок, могут быть и другие, указанные в описаниях конкретных методов.

Пример ответа с ошибкой:

{"error":"AK100310-02","code":"invalid_api_key"}

Стандартные коды ошибок:

Ошибка Значение
unspecified Тип ошибки не указан. Подробности смотрите в сообщении.
invalid_api_key Указан неправильный ключ доступа к API. Проверьте, совпадает ли значение api_key со значением, указанным в личном кабинете.
access_denied Доступ запрещён. Проверьте, включён ли доступ к API в личном кабинете и не обращаетесь ли вы к методу, прав доступа к которому у вас нет.
unknown_method Указано неправильное имя метода.
invalid_arg Указано неправильное значение одного из аргументов метода.
not_enough_money Не хватает денег на счету для выполнения метода.
retry_later Временный сбой. Попробуйте ещё раз позднее.
api_call_limit_exceeded_for_api_key Сработало ограничение по вызову методов API в единицу времени. На данный момент это 1200 вызовов в минуту. Для метода sendEmail — 60.
api_call_limit_exceeded_for_ip Сработало ограничение по вызову методов API в единицу времени. На данный момент это 1200 вызовов в минуту. Для метода sendEmail — 60.

Частые ошибки без указания типа:

Ошибка Значение
«These list ids=»…» has no confirmation letters» Не создано письмо подтверждение для списка, на который подписывается адресат. Откройте в личном кабинете список контактов на который настроена подписка, внизу слева есть пункт «Инструменты подписки и отписки». Заполните все поля на этой странице и сохраните. Инструкция по созданию письма подтверждения.
“Contacts test@example.org and +77777777 already exist but owned by different subscribers” Вы добавляете email и телефон контакта, который уже есть в вашем кабинете. Укажите email или телефон, который не принадлежит другому адресату.
«Call to a member function getMessage() on boolean» Вызов осуществляется с одновременным использованием методов GET и POST. Выполняйте запрос только одним из данных методов.

Кроме этих ошибок, могут быть и другие, указанные в описаниях конкретных методов.

Пример ответа с ошибкой:

{"error":"AK100310-02","code":"invalid_api_key"}

Оптимизируйте свои подборки

Сохраняйте и классифицируйте контент в соответствии со своими настройками.

В этом документе указаны некоторые коды ошибок и сообщения о них, получаемые от API Google. В список включены те ошибки, которые относятся к глобальному (используемому по умолчанию) домену для API Google. Многие API также определяют собственные домены, в которых могут быть свои ошибки, отсутствующие в глобальном домене. У таких ошибок в ответе JSON будет указано значение свойства domain, относящееся к конкретному API, например youtube.parameter.

На этой странице перечислены ошибки, систематизированные по кодам статуса HTTP, определения которых приведены в спецификации RFC 7231.

Вот пример ответа JSON, передающего информацию об ошибке, относящейся к глобальному домену:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidParameter",
    "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]",
    "locationType": "parameter",
    "location": "chart"
   }
  ],
  "code": 400,
  "message": "Invalid string value: 'asdf'. Allowed values: [mostpopular]"
 }
}

Ошибки

  1. MOVED_PERMANENTLY (301)
  2. SEE_OTHER (303)
  3. NOT_MODIFIED (304)
  4. TEMPORARY_REDIRECT (307)
  5. BAD_REQUEST (400)
  6. UNAUTHORIZED (401)
  7. PAYMENT_REQUIRED (402)
  8. FORBIDDEN (403)
  9. NOT_FOUND (404)
  10. METHOD_NOT_ALLOWED (405)
  11. CONFLICT (409)
  12. GONE (410)
  13. PRECONDITION_FAILED (412)
  14. REQUEST_ENTITY_TOO_LARGE (413)
  15. REQUESTED_RANGE_NOT_SATISFIABLE (416)
  16. EXPECTATION_FAILED (417)
  17. PRECONDITION_REQUIRED (428)
  18. TOO_MANY_REQUESTS (429)
  19. INTERNAL_SERVER_ERROR (500)
  20. NOT_IMPLEMENTED (501)
  21. SERVICE_UNAVAILABLE (503)

MOVED_PERMANENTLY (301)

Код ошибки Описание
movedPermanently Запрос был отправлен на URL, который больше нельзя использовать. Все запросы для той же операции теперь необходимо отправлять на URL, указанный в заголовке Location полученного ответа.

SEE_OTHER (303)

Код ошибки Описание
seeOther Запрос успешно обработан. Чтобы получить ответ, отправьте запрос GET на URL, указанный в заголовке Location.
mediaDownloadRedirect Запрос успешно обработан. Чтобы получить ответ, отправьте запрос GET на URL, указанный в заголовке Location.

NOT_MODIFIED (304)

Код ошибки Описание
notModified Условие, заданное для заголовка If-None-Match, не было выполнено. Этот ответ означает, что запрошенный документ не был изменен и что должен быть получен кешированный ответ. Проверьте значение заголовка If-None-Match в HTTP-запросе.

TEMPORARY_REDIRECT (307)

Код ошибки Описание
temporaryRedirect Чтобы ваш запрос был обработан, повторно отправьте его на URL, указанный в заголовке Location этого ответа.

BAD_REQUEST (400)

Код ошибки Описание
badRequest Запрос к API недействителен или неправильно сформирован. Поэтому сервер API не может его распознать.
badBinaryDomainRequest Двоичный запрос к домену недействителен.
badContent Тип данных запроса или тип контента части пакетного запроса не поддерживается.
badLockedDomainRequest Запрос к заблокированному домену недействителен.
corsRequestWithXOrigin Запрос CORS содержит заголовок X-Origin XD3, то есть этот запрос составлен неправильно.
endpointConstraintMismatch Обработать запрос не удалось, так как он не соответствует указанному API. Убедитесь, что вы указали правильный URL.
invalid Обработать запрос не удалось, так как он содержал недопустимое значение. Это может быть значение параметра, заголовка или свойства.
invalidAltValue В значении параметра alt указан неизвестный формат вывода.
invalidHeader Обработать запрос не удалось, так как он содержал недопустимый заголовок.
invalidParameter Обработать запрос не удалось, так как он содержал недопустимый параметр или значение параметра. Чтобы определить, какие параметры можно использовать для запроса, изучите документацию API.
invalidQuery Запрос недействителен. Узнайте, какие параметры можно использовать для запроса, и убедитесь, что запрос не содержит недопустимую комбинацию параметров или недействительные значения параметров. Для этого изучите документацию API. Проверьте значение параметра q.
keyExpired Срок действия ключа API, указанного в запросе, истек. Это означает, что сервер API не может проверить лимит квоты для приложения, отправляющего запрос. Чтобы узнать больше или получить новый ключ, перейдите в Google Developers Console.
keyInvalid Указанный в запросе ключ API недействителен. Это означает, что сервер API не может проверить лимит квоты для приложения, отправляющего запрос. Попробуйте найти ключ с помощью Google Developers Console или получите новый.
lockedDomainCreationFailure Токен OAuth был получен в строке запроса. API запрещает это для всех форматов ответа, кроме JSON и XML. Попробуйте отправить токен OAuth в заголовке Authorization.
notDownload На URL типа /download/* могут быть отправлены только запросы на скачивание мультимедиа. Отправьте запрос на тот же адрес, но без префикса /download.
notUpload На URI с префиксом /upload/* можно отправлять только запросы на загрузку. Ваш запрос не относится к их числу, поэтому обработать его не удалось. Отправьте запрос на тот же адрес, но без префикса /upload.
parseError Сервер API не может обработать тело запроса.
required В запросе отсутствует обязательная информация. Возможно, это параметр или свойство ресурса.
tooManyParts Обработать пакетный запрос не удалось, так как в нем слишком много частей.
unknownApi API, к которому обращается запрос, не распознан.
unsupportedMediaProtocol Медиапротокол клиента не поддерживается.
unsupportedOutputFormat В значении параметра alt указан формат вывода, который не поддерживается этим сервисом. Проверьте значение параметра запроса alt.
wrongUrlForUpload Обработать запрос на загрузку не удалось из-за неправильного URI. Такие запросы можно отправлять только на URI с префиксом /upload/*. Отправьте запрос на тот же адрес, но с префиксом /upload.
Код ошибки Описание
unauthorized У пользователя нет прав для выполнения этого запроса.
authError Для запроса указаны неправильные учетные данные. Проверьте значение заголовка Authorization в HTTP-запросе.
expired Время сеанса истекло. Проверьте значение заголовка Authorization в HTTP-запросе.
lockedDomainExpired Обработать запрос не удалось, так как истек срок действия заблокированного домена.
required Для выполнения этого запроса к API пользователю необходимо войти в систему. Проверьте значение заголовка Authorization в HTTP-запросе.

PAYMENT_REQUIRED (402)

Код ошибки Описание
dailyLimitExceeded402 Достигнут дневной лимит бюджета, установленный разработчиком.
quotaExceeded402 Для запрошенной операции необходимо больше ресурсов, чем доступно по квоте. Чтобы выполнить эту операцию, требуется платеж.
user402 Чтобы выполнить запрошенную операцию, требуется платеж от аутентифицированного пользователя.

FORBIDDEN (403)

Код ошибки Описание
forbidden Запрошенная операция запрещена, и ее нельзя завершить.
accessNotConfigured Для вашего проекта не настроен доступ к этому API. Активируйте API для проекта в Google Developers Console.
accessNotConfigured Проект заблокирован из-за нарушения правил. См. http://support.google.com/code/go/developer_compliance.
accessNotConfigured Проект подлежит удалению.
accountDeleted Аккаунт, связанный с указанными в запросе учетными данными, был удален. Проверьте значение заголовка Authorization в HTTP-запросе.
accountDisabled Аккаунт, связанный с указанными в запросе учетными данными, был отключен. Проверьте значение заголовка Authorization в HTTP-запросе.
accountUnverified Адрес электронной почты пользователя, делающего запрос, не подтвержден. Проверьте значение заголовка Authorization в HTTP-запросе.
concurrentLimitExceeded Обработать запрос не удалось, так как достигнут лимит параллельных соединений.
dailyLimitExceeded Достигнут ежедневный лимит квоты для API.
dailyLimitExceeded Достигнут ежедневный лимит квоты, и проект заблокирован из-за нарушения правил. Подробную информацию можно найти на форуме поддержки по правилам API Google.
dailyLimitExceededUnreg Обработать запрос не удалось, так как достигнут предел анонимного использования API в день. Чтобы продолжить работу с API, войдите в Google Developers Console.
downloadServiceForbidden API не поддерживает скачивание.
insufficientAudience Запрос не может быть выполнен для этой аудитории.
insufficientAuthorizedParty Запрос не может быть выполнен для этого приложения.
insufficientPermissions У аутентифицированного пользователя недостаточно прав для выполнения этого запроса.
limitExceeded Запрос нельзя выполнить из-за ограничений по доступу или частоте.
lockedDomainForbidden API не поддерживает заблокированные домены.
quotaExceeded Для запрошенной операции необходимо больше ресурсов, чем доступно по квоте.
rateLimitExceeded В течение определенного промежутка времени было отправлено слишком много запросов.
rateLimitExceededUnreg Превышен лимит частоты запросов. Чтобы продолжить использование API, зарегистрируйте приложение. Для этого создайте аккаунт, используя Google Developers Console.
responseTooLarge Невозможно получить запрошенный ресурс, так как его размер слишком велик.
servingLimitExceeded Достигнут лимит на частоту запросов для этого API.
sslRequired Эта операция возможна только с применением SSL.
unknownAuth Сервер API не распознает схему авторизации, используемую для запроса. Проверьте значение заголовка Authorization в HTTP-запросе.
userRateLimitExceeded Обработать запрос не удалось, так как частота запросов от этого пользователя превышает допустимую.
userRateLimitExceededUnreg Обработать запрос не удалось, так как достигнут предел частоты запросов от этого пользователя и в запросе не указан разработчик клиента. Создайте проект для вашего приложения в Google Developer Console (https://console.developers.google.com).
variableTermExpiredDailyExceeded Обработать запрос не удалось, так как истек срок действия временной квоты и была исчерпана стандартная дневная.
variableTermLimitExceeded Обработать запрос не удалось, так как была исчерпана временная квота, действующая в указанный период.

NOT_FOUND (404)

Код ошибки Описание
notFound Не удалось выполнить операцию, так как не найден ресурс, указанный в запросе.
notFound Не найден ресурс, указанный в запросе. Если вы не пользовались этим API в последние две недели, выполните повторное развертывание приложения App Engine и попробуйте вызвать API ещё раз.
unsupportedProtocol Не поддерживается протокол, используемый в запросе.

METHOD_NOT_ALLOWED (405)

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

CONFLICT (409)

Код ошибки Описание
conflict Не удалось выполнить запрос к API, так как запрошенная операция может вызвать конфликт с уже существующим объектом. Например, это случается, если запрашивается создание повторяющегося элемента, однако при таких конфликтах, как правило, ошибки диагностируются более конкретно.
duplicate Не удалось выполнить запрошенную операцию, так как она требует создания уже существующего ресурса.

GONE (410)

Код ошибки Описание
deleted Обработать запрос не удалось, так как указанный в нем ресурс был удален.

PRECONDITION_FAILED (412)

Код ошибки Описание
conditionNotMet Не было выполнено условие, заданное для заголовка If-Match или If-None-Match в HTTP-запросе. Чтобы узнать больше, прочитайте раздел ETag спецификации HTTP. Проверьте значение заголовка If-Match.

REQUEST_ENTITY_TOO_LARGE (413)

Код ошибки Описание
backendRequestTooLarge Слишком большой запрос.
batchSizeTooLarge Пакетный запрос содержит слишком много элементов.
uploadTooLarge Обработать запрос не удалось, так как в нем слишком много данных.

REQUESTED_RANGE_NOT_SATISFIABLE (416)

Код ошибки Описание
requestedRangeNotSatisfiable В запросе указан недопустимый диапазон.

EXPECTATION_FAILED (417)

Код ошибки Описание
expectationFailed Сервер не может выполнить запрос клиента.

PRECONDITION_REQUIRED (428)

Код ошибки Описание
preconditionRequired Запрос должен содержать условие. Укажите в запросе заголовки If-Match или If-None-Match, чтобы он был успешно обработан.

TOO_MANY_REQUESTS (429)

Код ошибки Описание
rateLimitExceeded В течение определенного промежутка времени отправлено слишком много запросов.

INTERNAL_SERVER_ERROR (500)

Код ошибки Описание
internalError Не удалось обработать запрос из-за внутренней ошибки.

NOT_IMPLEMENTED (501)

Код ошибки Описание
notImplemented Запрошенная операция не была реализована.
unsupportedMethod Обработать запрос не удалось, так как для этого необходимо выполнить неизвестный метод или операцию.

SERVICE_UNAVAILABLE (503)

Код ошибки Описание
backendError Произошла ошибка серверного кода.
backendNotConnected Обработать запрос не удалось из-за ошибки подключения.
notReady Сервер API не готов принимать запросы.

Ошибки, связанные непосредственно с Indexing API

Во всех описанных ниже ситуациях запрос отклоняется, а Googlebot не сканирует соответствующий URL. То же происходит в случае основных ошибок.

BAD_REQUEST (400)

Сообщение об ошибке Описание
Missing attribute. 'url' attribute is required. Пользователь не указал URL в запросе.
Invalid attribute. 'url' is not in standard URL format Пользователь ввел некорректный URL, например «abcd».
Unknown type. 'type' attribute is required and must be 'URL_REMOVED' or 'URL_UPDATED'. Пользователь не указал тип уведомления.
Invalid value at 'url_notification.type' (TYPE_ENUM) Пользователь указал в типе уведомления не URL_REMOVED или URL_UPDATED, а другое значение.

FORBIDDEN (403)

Сообщение об ошибке Описание
Permission denied. Failed to verify the URL ownership. Пользователь не прошел процедуру подтверждения права собственности или пытается обновить URL, который ему не принадлежит.

TOO_MANY_REQUESTS (429)

Сообщение об ошибке Описание
Insufficient tokens for quota 'indexing.googleapis.com/default_requests' Пользователь исчерпал свою квоту Indexing API.

Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

Последнее обновление: 2023-02-22 UTC.

Страница с ошибкой при обращении к WordPress-сайту всегда вызывает неудобства, вне зависимости от того, ваш это сайт или чужой. Как и в случае со многими другими кодами ответов HTTP, ошибка 401 не содержит детальных данных для диагностики и решения проблемы.

Ошибка 401 может появиться в любом браузере. В большинстве случаев ее легко решить.

В этой статье мы расскажем, что означает 401 ошибка, почему она происходит, и какие методы ее устранения существуют.

Итак, приступим!

Содержание

  1. Код ошибки 401 – что это?
  2. Что вызывает ошибку 401
  3. Как исправить ошибку 401 (5 методов)

Код ошибки 401 – что это?

Коды состояния HTTP 400 возникают в случае проблем с выполнением запросов. В частности, ошибка 401 появляется, когда браузер отказывает вам в доступе к странице, которую вы хотите посетить.

В результате вместо загрузки страниц браузер выведет сообщение об ошибке. Ошибки 401 могут возникать в любом браузере, потому отображаемое сообщение может варьироваться.

К примеру, в Chrome и Edge вы, скорее всего, увидите иконку бумаги с простым сообщением о том, что запрашиваемая страница не отвечает. Вы увидите фразу «HTTP Error 401». Вам будет предложено связаться с владельцем сайта, если ошибка не пропадет:

В иных случаях и в других браузерах вы можете получить менее дружелюбное предупреждение. К примеру, может выводиться пустая страница с сообщением «401 Authorization Required»:

Другие вариации текста:

  • HTTP 401 Error – Unauthorized
  • 401 Unauthorized
  • Access Denied

Эти ошибки часто появляются на сайтах, где требуется вводить данные для входа. В большинстве случаев это означает, что что-то не так с учетными данными. Возможно, браузер перестал считать их действительными.

Эта ошибка похожа на HTTP 403 Forbidden Error, когда доступ к сайту для пользователя запрещен. Однако, в отличие от ошибки 403, сообщение об ошибке 401 указывает, что процесс аутентификации завершился неудачно.

Код ошибки передается через заголовок WWW-Authenticate, который отвечает за определение метода аутентификации, используемого для предоставления доступа к веб-странице или ресурсу.

Что вызывает ошибку 401

Если вы столкнулись с кодом ошибки в кодах 400, вы должны знать, что проблема произошла на стороне клиента (либо на стороне браузера). Случается, что виновником проблемы является браузер, но так бывает не всегда. Об этом мы еще расскажем позже.

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

Устаревшие Cookie и кэш браузера

Одной из наиболее распространенных причин возникновения ошибки 401 является то, что кэш и файлы cookie вашего браузера устарели, что не позволяет выполнить авторизацию. Если ваш браузер использует недействительные данные для авторизации (либо вообще их не использует их), сервер отклонит запрос.

Несовместимые плагины

Также бывают ситуации, когда ошибка вызвана несовместимостью плагинов или какими-либо сбоями в них. К примеру, плагин безопасности может ошибочно принять вашу попытку входа за вредоносную активность, а потому будет возвращена ошибка 401 для защиты страницы.

Неверный URL или устаревшая ссылка

Бывает, что источником проблемы является незначительная оплошность. К примеру, был неверно введен URL, ссылка была устаревшей и т.д.

Как исправить ошибку 401 (5 методов)

Теперь, когда мы разобрались с причинами ошибки 401, пришло время обсудить, как ее устранить.

Давайте рассмотрим 5 методов, которые вы можете использовать.

  1. Проверьте ваш URL.

Начнем с самого простого потенциального решения: убедитесь, что вы использовали верный URL. Это может выглядеть банально, но 401 ошибки нередко появляются, если URL-адрес был введен неправильно.

Еще один вариант: ссылка, которую вы использовали для перехода на запрашиваемую страницу, указывает на неправильный URL. К примеру, ссылка устарела, ведет на страницу, которой больше нет (и редиректов не задано).

Стоит тщательно перепроверить URL-адрес, который вы использовали. Если вы набирали адрес самостоятельно, убедитесь, что все написано безошибочно. Если вы переходили по ссылке, убедитесь в том, что она ведет на страницу, к которой вы хотите получить доступ (либо попробуйте перейти на эту страницу непосредственно через сайт).

  1. Почистите кэш браузера.

Кэш браузера предназначен для улучшения процесса взаимодействия с сайтами в сети за счет сокращения времени загрузки страниц. К сожалению, иногда это может вести к нежелательным последствиям.

Как мы уже говорили выше, одной из распространенных причин появления ошибки 401 являются устаревшие или неправильные данные кэша или cookies. Потому, если URL введен верно, следующий шаг – чистка кэша браузера.

В итоге вы удалите любую недействительную информацию, которая хранится локально в вашем браузере и может приводить к прерываниям процесса аутентификации.  Аналогично, файлы cookie вашего браузера могут содержать аутентификационные данные, которые нужно обновить.

Если вы пользуетесь Chrome, вам нужно щелкнуть по иконке с меню в правом верхнем углу браузера и выбрать пункт Settings. В разделе «Privacy and security» нажмите «Clear browsing data:»

Далее вводим URL требуемого сайта и очищаем для него данные.

В других браузерах процесс очистки кэша и cookie может отличаться. К примеру, в Firefox нужно щелкать по иконке с библиотекой и выбирать History > Clear Recent History:

Информацию по остальным браузерам вы можете найти в поисковиках.

  1. Очистка DNS.

Еще один метод, который вы можете попробовать для устранения ошибки 401 – это очистка DNS. Эта причина встречается относительно редко, но стоит попробовать и такой подход, особенно если первые два ничего не дали.

Чтобы очистить DNS, перейдите в Windows к меню «Пуск» и там уже введите в строку поиска cmd. Нажмите Enter. Откроется командная строка. Далее вставьте команду ipconfig/flushdns, после чего снова нажмите Enter.

Если вы пользуетесь Mac, вы можете открыть командную строку следующим образом: Finder > Applications > Utilities > Terminal.

Введите команду sudo killall -HUP mDNSResponder и нажмите Enter. Затем вы можете обновить страницу, чтобы посмотреть, пропала ли ошибка 401 или нет.

  1. Деактивируйте ваши плагины

Проблема может возникать и по вине плагинов.

Некоторые плагины, особенно связанные с безопасностью, могут выдавать ошибку 401 при подозрении на вредоносную активность. Также у них могут быть проблемы с совместимостью. Потому лучше всего деактивировать все плагины и посмотреть, будет ли страница работать.

Вы можете деактивировать все плагины разом, перейдя в раздел Plugins > Installed Plugins в консоли WordPress. Выберите все плагины и в меню Bulk Actions задайте Deactivate, после чего щелкните по кнопке Apply:

После этого попробуйте перезагрузить страницу с ошибкой. Если ошибка пропала, вы можете вручную по одному активировать плагины заново, чтобы выявить виновника всех бед.

Далее вы уже можете либо удалить плагин, либо написать его разработчикам, чтобы они предоставили рабочее решение.

  1. Проверьте заголовок WWW-Authenticate

Если проблема все еще остается, то в таком случае она может быть связана с ошибками на сервере. А значит, исправить ее будет чуть сложнее.

Как мы уже писали ранее, ответ 401 передается через заголовок WWW-Authenticate, который отображается как “WWW-Authenticate: <type> realm=<realm>”. Он включает в себя строки данных, указывающие на то, какой тип аутентификации требуется для предоставления доступа.

Вам нужно посмотреть, был ли отправлен ответ в WWW-Authenticate, а точнее какая схема аутентификации была использована. По крайней мере, это позволит вам приблизиться на один шаг к решению.

Перейдите на страницу с ошибкой 401 и откройте консоль разработчика в Chrome. Вы можете щелкнуть правой кнопкой мыши на странице и выбрать Inspect (Ctrl+Shift+J).

Далее перейдите на вкладку Network и перезагрузите страницу. Это позволит сгенерировать список ресурсов. Выберите заголовок Status, чтобы отсортировать таблицу, и найдите код 401:

Выберите данную запись, после чего перейдите на вкладку Headers. В Response Headers найдите заголовок WWW-Authenticate:

Информация, представленная в заголовке ответа, в частности, в схеме аутентификации, даст вам больше сведений о том, что произошло, и укажет на решение. Это позволит вам понять, какой тип аутентификации требуется серверу.

К примеру, в приведенном выше примере мы видим, что схема аутентификации задана как «Basic». Это означает, что запрос аутентификации требует только ID и password. Для получения более подробной информации и инструкций мы рекомендуем обратиться к HTTP Authentication Scheme Registry.

Источник: kinsta.com

Понравилась статья? Поделить с друзьями:
  • Недалеком прошлом лексическая ошибка
  • Недоступна ошибка 10 триколор тв
  • Недалеко работа над ошибками
  • Недостроенный дом неуспевающий ученик незамеченная мною ошибка
  • Недавно выстроенный и выбеленный дом приветливо ошибка