Перехватить responce

sanya

Client
Joined
Sep 8, 2015
Messages
196
Reaction score
51
Points
28
День добрый, каким образом можно перехватить ответ от пост запроса? Получается я нажимаю кнопку регистрации и сайт по цепочке шлет запросы, в трафике посмотрел есть нужные мне данные. Так вот я хотел бы отловить ответ от определенного запроса, но не прибегая к созданию собственного постзапроса. Может понятно объяснил, а может и нет)
 

ibred

Client
Joined
Apr 4, 2015
Messages
3,835
Reaction score
3,556
Points
113
Выполнить C# код перед выполнением запроса \ перехода на сайт. Можно даже запустить в начале проекта.
C#:
instance.UseTrafficMonitoring = true;

После того, как запрос выполнен, забираем Response запроса.
Вместо https://zennolab.com/ru/ нужно указать нужный URL.
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}
return "Ничего не нашли";
 

sanya

Client
Joined
Sep 8, 2015
Messages
196
Reaction score
51
Points
28
ну хоть и не выручил, но пытался :-)
хотел написать ну выручил)))все норм, ток единственное не понял почему, когда один раз прочитал, второй раз уже не находит
 

ibred

Client
Joined
Apr 4, 2015
Messages
3,835
Reaction score
3,556
Points
113
когда один раз прочитал, второй раз уже не находит
Так и должно быть.
Как вариант, Вы можете сохранить трафик в project.Context, а уже после обращаться к нему.

C#:
project.Context["traff"] = instance.ActiveTab.GetTraffic();
C#:
var traffic = project.Context["traff"];
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}
return "Ничего не нашли";
 

sanya

Client
Joined
Sep 8, 2015
Messages
196
Reaction score
51
Points
28

boosh1c

Client
Joined
Mar 30, 2021
Messages
7
Reaction score
0
Points
1
Подскажите пожалуйста люди добрые, почему трафик сохраняется в
project.Context[] через раз, что в ПМ, что в ЗП. Второй день залипаю, пробовал и паузы и игнорировать GET/POST и работать через таблицу, и еще много всего.
Когда пробую сохранить Traff в таблицу в 50% случаях сохранятеся только первая строка(Оглавление: Method|ResultCode|Url...)
а содержимое пустое, будто нет запросов в трафике, хотя их там много. Версия 7.4

П.С. пожалуйста не пишите "instance.UseTrafficMonitoring = true;" - это пробовал первым делом на разных стадиях выполнения и по несколько раз.
 

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,725
Points
113
Подскажите пожалуйста люди добрые, почему трафик сохраняется в
project.Context[] через раз, что в ПМ, что в ЗП. Второй день залипаю, пробовал и паузы и игнорировать GET/POST и работать через таблицу, и еще много всего.
Когда пробую сохранить Traff в таблицу в 50% случаях сохранятеся только первая строка(Оглавление: Method|ResultCode|Url...)
а содержимое пустое, будто нет запросов в трафике, хотя их там много. Версия 7.4

П.С. пожалуйста не пишите "instance.UseTrafficMonitoring = true;" - это пробовал первым делом на разных стадиях выполнения и по несколько раз.
точно все запросы прогрузились ?
 

boosh1c

Client
Joined
Mar 30, 2021
Messages
7
Reaction score
0
Points
1
точно все запросы прогрузились ?
Я не уверен что все прогружаются, но может и не обязательно чтобы все прогрузились?
Прогруженных то запросов точно много, а в таблицу записывается только первая строка, будто запросов нет совсем. Но при этом команда GetTraffic() получается отрабатывает, только не корректно.
78887

Пробовал большие паузы около 5с перед instance.ActiveTab.GetTraffic(); ситуация та же, что и если паузы не делать совсем, отрабатывает 50 на 50.
Причем если, когда проект дойдет до конца запустить кубик GetTraffic(); он 100% запишет трафик.
 
Last edited:

bizzon

Client
Joined
Sep 8, 2015
Messages
1,104
Reaction score
132
Points
63
С этим делом нужно разбираться, у меня был похожий вариант.
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
70
Reaction score
3
Points
8
Всем привет!
В PM все четко работает, а в ZP выдает ошибку:

Выполнение действия CSharp OwnCode: RequestBody. Массив не может быть неопределенным.
Имя параметра: bytes


В чем может быть дело?
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
70
Reaction score
3
Points
8
Выполнить C# код перед выполнением запроса \ перехода на сайт. Можно даже запустить в начале проекта.
C#:
instance.UseTrafficMonitoring = true;

После того, как запрос выполнен, забираем Response запроса.
Вместо https://zennolab.com/ru/ нужно указать нужный URL.
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}
return "Ничего не нашли";
Как можно сразу получить в переменную ResponseBody + RequestBody ?
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
70
Reaction score
3
Points
8
Так и должно быть.
Как вариант, Вы можете сохранить трафик в project.Context, а уже после обращаться к нему.

C#:
project.Context["traff"] = instance.ActiveTab.GetTraffic();
C#:
var traffic = project.Context["traff"];
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}
return "Ничего не нашли";
Ребята, подскажите, что такое project.Context ? Его нужно как-то создавать, что-нибудь где-то прописывать или еще че-нить?
92598

Почему-то постоянно выдает ошибку:
Выполнение действия CSharp OwnCode: . Ссылка на объект не указывает на экземпляр объекта
 
Last edited:

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,798
Reaction score
2,483
Points
113
Ребята, подскажите, что такое project.Context ? Его нужно как-то создавать, что-нибудь где-то прописывать или еще че-нить?
View attachment 92598
Почему-то постоянно выдает ошибку:
Выполнение действия CSharp OwnCode: . Ссылка на объект не указывает на экземпляр объекта
А Вы уверены, что по Url который Вы указали действительно был отправлен запрос, который содержал ResponseBody?
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
70
Reaction score
3
Points
8
А Вы уверены, что по Url который Вы указали действительно был отправлен запрос, который содержал ResponseBody?
Да. Т.к. через instance.UseTrafficMonitoring = true; все работает
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,798
Reaction score
2,483
Points
113
Да. Т.к. через instance.UseTrafficMonitoring = true; все работает
Приведите код, который работает.
Приведите код, который не работает.
 
  • Thank you
Reactions: djaga

Markoonij

Client
Joined
Oct 13, 2020
Messages
70
Reaction score
3
Points
8
Так РАБОТАЕТ:
C#:
instance.UseTrafficMonitoring = true;
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://mt-auth.kambicdn.org/player/api/v2019/rb/punter/login.json?market=MT&lang=en_GB&channel_id=1&client_id=2&settings=true") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}

return "Ничего не нашли";
Вот так НЕ РАБОТАЕТ:
C#:
project.Context["traff"] = instance.ActiveTab.GetTraffic();
C#:
var traffic = project.Context["traff"];
foreach(var t in traffic) {
    if (t.Url=="https://mt-auth.kambicdn.org/player/api/v2019/rb/punter/login.json?market=MT&lang=en_GB&channel_id=1&client_id=2&settings=true") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}

return "Ничего не нашли";
Выдает ошибку в логе: Выполнение действия CSharp OwnCode: . Ссылка на объект не указывает на экземпляр объекта
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,798
Reaction score
2,483
Points
113
Вот так будет работать (строчка instance.UseTrafficMonitoring = true нужна в любом случае).
C#:
instance.UseTrafficMonitoring = true;
project.Context["traff"] = instance.ActiveTab.GetTraffic();
C#:
var traffic = project.Context["traff"];
foreach(var t in traffic) {
    if (t.Url=="https://mt-auth.kambicdn.org/player/api/v2019/rb/punter/login.json?market=MT&lang=en_GB&channel_id=1&client_id=2&settings=true") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}

return "Ничего не нашли";
92710

92711

92712
 
  • Thank you
Reactions: Markoonij
Joined
May 18, 2017
Messages
72
Reaction score
5
Points
8
Всем привет!
В PM все четко работает, а в ZP выдает ошибку:

Выполнение действия CSharp OwnCode: RequestBody. Массив не может быть неопределенным.
Имя параметра: bytes


В чем может быть дело?
У меня такая же история в PM работает в ZP не работает.
Вам удалось решить проблему?
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
70
Reaction score
3
Points
8
У меня такая же история в PM работает в ZP не работает.
Вам удалось решить проблему?
К сожалению, нет
 

SparkRu

Client
Joined
Jun 24, 2021
Messages
13
Reaction score
0
Points
1
Доброй ночи. А как можно получить Url содержащий определенный текст?
Например адрес содержащий "search"
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,798
Reaction score
2,483
Points
113
Доброй ночи. А как можно получить Url содержащий определенный текст?
Например адрес содержащий "search"
C#:
string text = "search"; // Какое слово должно быть в Url
int max = 10; // Сколько попыток искать сделать
instance.UseTrafficMonitoring = true;

for(int i=0;i<max;i++) {
    foreach(var t in instance.ActiveTab.GetTraffic()) {
        if (t.Url.Contains(text)) return t.Url; // Если нашли
    }
    Thread.Sleep(1*1000);
}

return string.Empty; // Если не нашли
98193
 

SparkRu

Client
Joined
Jun 24, 2021
Messages
13
Reaction score
0
Points
1
Благодарю за подробный ответ )
 

Gfoblin

Client
Joined
May 30, 2013
Messages
4,613
Reaction score
1,019
Points
113
Так и должно быть.
Как вариант, Вы можете сохранить трафик в project.Context, а уже после обращаться к нему.

C#:
project.Context["traff"] = instance.ActiveTab.GetTraffic();
C#:
var traffic = project.Context["traff"];
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}
return "Ничего не нашли";
При POST - НИХУЯ :(
Блин 3 часа тут по форума лазию не могу найти простое решиние - как выдернуть с пост запроса?!
При гетах всё пашет!!! Где и как глянуть что упала в project.Context["traff"] без всяких фильтров?!
 

Gfoblin

Client
Joined
May 30, 2013
Messages
4,613
Reaction score
1,019
Points
113
Вот так будет работать (строчка instance.UseTrafficMonitoring = true нужна в любом случае).
C#:
instance.UseTrafficMonitoring = true;
project.Context["traff"] = instance.ActiveTab.GetTraffic();
C#:
var traffic = project.Context["traff"];
foreach(var t in traffic) {
    if (t.Url=="https://mt-auth.kambicdn.org/player/api/v2019/rb/punter/login.json?market=MT&lang=en_GB&channel_id=1&client_id=2&settings=true") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}

return "Ничего не нашли";
View attachment 92710
View attachment 92711
View attachment 92712
Выручайте как выдернуть post! )
 

BAZAg

Client
Joined
Nov 8, 2015
Messages
1,798
Reaction score
2,483
Points
113
Выручайте как выдернуть post! )
Уточните что Вы делаете, что получаете, что хотите получить?
Куда мне зайти, куда кликнуть чтобы увидеть нужный запрос чтобы попытаться его поймать?
 

bad robot

Client
Joined
Mar 7, 2011
Messages
209
Reaction score
56
Points
28
в CEF (Chrome) перехват трафика срабатывает 1 раз на 100 попыток, в Chromium работает как часы - может кому полезно будет и вы не убъете время на эксперементы, как я.
 

troides123

Client
Joined
Aug 1, 2014
Messages
40
Reaction score
9
Points
8
в CEF (Chrome) перехват трафика срабатывает 1 раз на 100 попыток, в Chromium работает как часы - может кому полезно будет и вы не убъете время на эксперементы, как я.
У меня один шаблон по непонятным причинам работал криво и выдавал 403 в 80% случаев решил поменять браузер и бинго В Chrome криво в Chromium все хорошо. Причем саит работает отлично только на аутентификационный пост запрос в хроме приходит 403
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)