Вопрос по запросам

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

clocky

Client
Регистрация
26.09.2019
Сообщения
397
Реакции
72
Баллы
28
Всем привет, есть решение капчи на запросах. Для того чтобы она решалась, нужно вытащить данные, которые передаются в POST запросе при клике на кнопку "зарегистрировать". Этот запрос отдает ошибку 400, но в нем хранятся нужные данные для решения капчи. Собственно вопрос, каким-то образом, можно написать регистратор на кликах, но получить из нужного запроса информацию? Спасибо
 
1) Перед действием нажатия кнопки "Зарегистрироваться" включаем мониторинг трафика C#:
C#:
Развернуть Свернуть Копировать
instance.UseTrafficMonitoring = true;
2) Выполняем действие, например как в вашем примере нажатие кнопки "Зарегистрироваться"(или совокупность действий) приводящих к отправке нужного запрос.
3) Ловим запрос примерно так(доработать под себя) C#:

C#:
Развернуть Свернуть Копировать
instance.ActiveTab.WaitDownloading();

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url.Contains("captcha") ) { //ЗАМЕНИТЬ ПОД СЕБЯ
        if(t.ResponseBody == null || t.ResponseBody.ToString() == "") {
                project.SendInfoToLog("Запрос НЕ вернул ответ", true);
            }
            project.Variables["RequestHeaders"].Value = t.RequestHeaders;
            project.Variables["ResponseBody"].Value = t.ResponseBody;
    }
}


Это не "универсальный" метод, а лишь пример и общий алгоритм шагов ловли запросов после каких-то действий
 
Последнее редактирование:
  • Спасибо
Реакции: clocky и j2082192
C#:
Развернуть Свернуть Копировать
instance.ActiveTab.WaitDownloading();

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url.Contains("register")) { // ЗАМЕНИТЬ ПОД СЕБЯ
        // Проверка, если ResponseBody пустое или равно null
        if (t.ResponseBody == null || Encoding.UTF8.GetString(t.ResponseBody) == "") {
            project.SendInfoToLog("Запрос НЕ вернул ответ", true);
        } else {
            // Преобразуем ResponseBody в строку для использования
            project.Variables["RequestHeaders"].Value = t.RequestHeaders;
            project.Variables["ResponseBody"].Value = Encoding.UTF8.GetString(t.ResponseBody);
        }
    }
}

Не работал код, чутка изменил, теперь всё отлично
 

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