5.9.5.1 Get | Post повторения при таймауте

  • Автор темы Автор темы bpunk
  • Дата начала Дата начала

bpunk

Client
Регистрация
23.08.2015
Сообщения
183
Реакции
31
Баллы
28
Добрый день!
Из-за использования прокси или нестабильного канала возникают проблемы с выполнением запросов и как следствие таймауты.
Скажите можно ли как-то задать для запросов количество повторений при таймауте?
Нигде не нашел опции, если её еще не существует, то была бы крайне полезной для всех! Добавьте плз )
 
Опции нет, сейчас можно разве что самому писать эти обработчики
 
Добрый день!
Из-за использования прокси или нестабильного канала возникают проблемы с выполнением запросов и как следствие таймауты.
Скажите можно ли как-то задать для запросов количество повторений при таймауте?
Нигде не нашел опции, если её еще не существует, то была бы крайне полезной для всех! Добавьте плз )
при неудаче, повторить в цикле, сколько раз или до выполненного какого то действия
 
Главное не делайте бесконечных циклов)
 
ГЕТ и ПОСТ и без прокси работает нестабильно. Очень часто может получиться так, что запрос вроди как сработал, но по факту в ответе пусто.
Всегда делаю цикл повторений на 5 с обязательной проверкой - есть ли в ответе вообще что либо, а потом уже проверяю что и то ли, что должно быть.
 
ГЕТ и ПОСТ и без прокси работает нестабильно. Очень часто может получиться так, что запрос вроди как сработал, но по факту в ответе пусто.
Всегда делаю цикл повторений на 5 с обязательной проверкой - есть ли в ответе вообще что либо, а потом уже проверяю что и то ли, что должно быть.
а я о противоречу, никогда гет пост без прокси не подводит, проверка на пустоту стоит в каждом запросе, и проекты летают
 
а я о противоречу, никогда гет пост без прокси не подводит, проверка на пустоту стоит в каждом запросе, и проекты летают
Никогда не говори никогда :)
Тут много факторов - что ты этими запросами делаешь, с какими сайтами работаешь, что туда отправляешь\пытаешься получить и т.д. и т.п.
И я не сказал, что это один сплошной глюк, который никогда не работает, а сказал, что часто бывают сбои и желательно добавлять проверку на наличие ответа.

Противоречить нужно с толком, а не просто ради самого противоречия ;)
 
ГЕТ и ПОСТ и без прокси работает нестабильно. Очень часто может получиться так, что запрос вроди как сработал, но по факту в ответе пусто.
Всегда делаю цикл повторений на 5 с обязательной проверкой - есть ли в ответе вообще что либо, а потом уже проверяю что и то ли, что должно быть.
у меня такое постоянно тоже
особенно вк
 
вот-вот!
Просьба в экшн добавить хотябы "кол-во повторов при неудаче" очень-очень нужная опция.
 
А с чего вы взяли что это неудача? Может сервак такой ответ отправил?
Насчет проверки содержимого вам правильно подсказали
 
А с чего вы взяли что это неудача? Может сервак такой ответ отправил?
Насчет проверки содержимого вам правильно подсказали
О неудаче говорит неудачный исход. Неудача - не получилось выполнить запрос, то есть HttpRequest Failed - в таком случае опция "повтор при неудаче" позволит понять или экшн глюкнул или прокси сдох. 3-5 повторов достаточно.
А ответ на запрос всегда есть, только что может возвращать пустое значение если отправлен "вникуда" и ему не вернули ответ.

Бывает разовый глюк сети/драйверов/прокси/еще чего-либо при работе с Post/Get и если вручную еще раз сделать запрос - все проходит.
Для этих целей прошу внести таску, чтобы можно было указывать число попыток для данных экшнов.
И в таком случае, резонно сделать опцию "не перезаписывать значение переменной, если ответ пустой"
 
добавил в idea collector
 
добавил в idea collector
idea collector - это "реализуем в 2017м" ???
давайте как-то серьезнее. для меня это ОГРОМНАЯ проблема, думаю есть и др юзеры, которые скажут ОГРОМНОЕ спасибо.
Если эта фича требует нечеловеческих услий для реализации - то да, соглашусь и напилю костылей в проект. А если это реализуемо без скрипов, то Why Not??
я могу показать как выполняются пост и гет. при этом да прокси бывают разные, но ведь через браузер нет таких проблем. возникают вопросы...
ПС стоит ли ставить задержки перед серией запросов???
 
Это реализуемо в проекте парой кликов - правый клик на экшене - повторить в цикле.
Это не огромная проблема на сегодняшний день, чтобы говорить о том что это стопорит работу.
ПС стоит ли ставить задержки перед серией запросов???
я не ставлю
 
Ну зачем, объясните, цикл если выполнилось успешно? а если экшнов 20-50 ? на каждый цикл на цикл цикл цикл цикл...
У меня часто проекты обламываются на таких вещах. Конечно можно сниппет выдумать и там сделать цикл, но увы в шарпе я так же как и в балете.
 
Держи! Пихаешь код в с# кубик и используешь вместо стандартного POST.

Код:
Развернуть Свернуть Копировать
var data = String.Empty; // Здесь вместо String.Empty свои данные для POST запроса

var resultPost = String.Empty;
int br = 0; //  переменная для выхода из цикла
do
{
    resultPost = ZennoPoster.HttpPost
        (
            "https://api.vk.com/method/wall.post.xml?", // тут урл для запроса
            data,
            "application/x-www-form-urlencoded",
            project.Variables["Proxy"].Value, // тут прокси
            "UTF-8",
            ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
            52000,
            String.Empty,
            project.Profile.UserAgent,
            true,
            5,
            AdditionalHeaders: new[] {"Referer: https://vk.com/feed"}, // тут реферер
            DownloadPath: project.Directory+@"\Trash" // путь куда будут качатся файлы, полученые при запросе
        );
    // условие выхода из цикла, если оно срабатывает выдаем исключение про плохой прокси
    br++;
    if (br == 21) // здесь задаем количество повторений запроса
    {
        project.SendErrorToLog("ERROR_API: Не возвращаются данные. Скорее всего у вас не рабочий прокси!!!", true);
        throw new Exception("");
        break;
    }
}
while (resultPost == String.Empty);
project.Variables["Имя переменной где будет результат POST запроса"].Value = resultPost;
 
Последнее редактирование:
  • Оценить
Реакции: dremniy, bpunk и CSS
Ну зачем, объясните, цикл если выполнилось успешно? а если экшнов 20-50 ? на каждый цикл на цикл цикл цикл цикл...
У меня часто проекты обламываются на таких вещах. Конечно можно сниппет выдумать и там сделать цикл, но увы в шарпе я так же как и в балете.
В цикл можно ходить только если экшен завершился с ошибкой, например
 
  • Оценить
Реакции: CSS
В цикл можно ходить только если экшен завершился с ошибкой, например
Это да, но счетчик каждого такого цикла нужно сбрасывать еще, так как повторно если завернем туда, то сразу же выйдет по ошибке.
Отличная фича вышла бы, если бы все-таки реализовали, вместо того, чтобы городить велосипеды из экшнов :)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)