Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    fetch - как получить код ответа

    fetch - как получить код ответа

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    fetch - как получить код ответа, RouterOS
     
    TerAnYu
    Guest
    #1
    0
    20.03.2020 09:06:00
    Привет! Прошу помочь с получением ответа при запросе к http сайту. Когда ты запрашиваешь сайт с помощью curl: C:\Users>curl example.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>302 Found</TITLE></HEAD><BODY> <H1>302 Found</H1> Документ перемещён сюда </BODY></HTML> Покажите заголовки: C:\Users>curl -s -I example.com HTTP/1.1 302 Found Content-Length: 219 Location: http://zero.2090000.ru Content-Type: text/html; charset=UTF-8 в ответе нужно найти http://zero.2090000.ru и выполнить script1, если нет, то выполните script2. Когда я запрашиваю через mikrotik, я получаю ошибку и невозможность передать в переменную (не знаю, как это сделать), чтобы дальше обработать. [user@mtgw] > :global value [/tool fetch url=http://example.com/ output=user] статус: не удалось ошибка: закрытие соединения: <302 Found "http://zero.2090000.ru"> 193.232.46.60:80 (4)
     
     
     
    diasdm
    Guest
    #2
    0
    24.03.2024 02:11:00
    Это, похоже, работает только в том случае, если результат запроса успешен. Если мы попробуем другой пример с неправильным URL (правильный = reqbin.com), то результат будет только ошибка, а не статус "неудачно". {
     :local result [/tool fetch url=https://reqb.com/echo/get/json output=user as-value]
     :if ($result->"status" = "failed") do={
       :put ($result->"status")
       # Статус пустой
     }
    } Поэтому было бы неплохо в скрипте обработать ошибку с более дружелюбным сообщением. Когда запрос не удается, как можно захватить статус и сообщение об ошибке?
     
     
     
    rextended
    Guest
    #3
    0
    24.03.2024 11:04:00
    Я не могу перевести текст, так как он содержит URL-адрес: http://forum.mikrotik.com/t/fetch-capable-of-following-redirects/151723/7
     
     
     
    Amm0
    Guest
    #4
    0
    24.03.2024 12:58:00
    Если проблема заключается в "неправильном URL"... Это может означать, что DNS не может разрешить адрес или TCP не может подключиться к разрешенному IP. Насколько я знаю, вам об этом ничего конкретного не скажут, просто будет статус "неудачно" (хотя перед этим можно проверить DNS с помощью ":resolve"). Но если HTTP не удается подключиться, то на самом деле нет некого "кода статуса", так как он появляется только ПОСЛЕ подключения сервера.
     
     
     
    diasdm
    Guest
    #5
    0
    24.03.2024 18:45:00
    Как жаль. Похоже, это очень старая потребность пользователей. Думаю, лучший вариант — прибегнуть к файлам, как и предложил @rextended. Надеюсь, что MT однажды улучшит инструмент Fetch.
     
     
     
    Amm0
    Guest
    #6
    0
    24.03.2024 19:18:00
    Недавно добавили опцию “output=user-with-headers”, но она не решает проблему с ошибкой DNS. Кроме того, в сообщении об ошибке может содержаться текст, связанный с этой ошибкой (в зависимости от ситуации, он есть). Вы можете упростить подход @rextended, используя новый “:onerror” в совсем недавней версии V7: :onerror errtext in={/tool/fetch/...} do={ :put $errtext; :pick [ :find $errtext ...] ... } Но… вам нужно знать, какой текст ошибки вы ищете, и никто не гарантирует, что Mikrotik не изменит это сообщение. Так что этот способ тоже проблематичный.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры