Подскажите c# код который результат запроса (например 200 или 500) кладёт в переменную

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Собственно вопрос содержится в самом заголовке. Смысл в том, что от сервера приходит ответ, который содержит один из этих двух результатов. В зависимости от результата будет два варианта продолжения шаблона. Как найти сам этот запрос и положить в переменную я нашёл на форуме. А вот как положить в переменную именно результат, не нахожу.

Нахожу запрос так:
Сначала ввожу этот код
C#:
instance.UseTrafficMonitoring = true;
Потом этот
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://site.com") {
        return System.Text.Encoding.UTF8.GetString(t.ResponseBody);
    }
}
return "Ничего не нашли";
 

dihard

Client
Регистрация
08.11.2019
Сообщения
243
Благодарностей
40
Баллы
28
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://site.com") {
        return t.ResponseBody;
    }
}
return "Ничего не нашли";
System.Text.Encoding.UTF8.GetString по сути лишнее
И галочку не возвращать значение убери и укажи переменную
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://site.com") {
        return t.ResponseBody;
    }
}
return "Ничего не нашли";
System.Text.Encoding.UTF8.GetString по сути лишнее
И галочку не возвращать значение убери и укажи переменную
В таком случае в переменную кладётся значение System.Byte[], но никак не цифры((

И ещё, как сделать так, чтобы перед выполнением команды instance.UseTrafficMonitoring = true; (или сразу после её выполнения) очищалось окно трафик монитора. Тоже не смог найти на форуме.
 

dihard

Client
Регистрация
08.11.2019
Сообщения
243
Благодарностей
40
Баллы
28
Так стоп, название темы как всегда не прочитал.
Тебе надо получить значение чего? заголовки запроса или заголовки ответа или сам ответ?
 

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Так стоп, название темы как всегда не прочитал.
Тебе надо получить значение чего? заголовки запроса или заголовки ответа или сам ответ?
мне необходимо, чтобы в переменную помещалось число либо 200 либо 500, в зависимости от того, какое из них находится в запросе в трафике монитора

76662
 

dihard

Client
Регистрация
08.11.2019
Сообщения
243
Благодарностей
40
Баллы
28
мне необходимо, чтобы в переменную помещалось число либо 200 либо 500, в зависимости от того, какое из них находится в запросе в трафике монитора

Посмотреть вложение 76662
А зачем тебе тогда трафик писать? Почему нельзя сделать просто Гет запрос и выбрать брать "Загружать только заголовки", первая строчка в переменной вернет код 200 или 500
 
  • Спасибо
Реакции: LifeIsCool

dihard

Client
Регистрация
08.11.2019
Сообщения
243
Благодарностей
40
Баллы
28
А если ты уже делаешь пост или гет запрос на эту ссылку, тебе только поменять на "Загружать заголовки и содержимое" и просто обработай переменную
 
  • Спасибо
Реакции: LifeIsCool

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Я не делаю пост и гет запросов на эту ссылку, это ответ от сервера
 

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Понял, разобрался, спасибо!
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Понял, разобрался, спасибо!
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
    if (t.Url=="https://site.com")
    {
        string status = t.ResultCode.ToString();
       if(status.Equals("200") || status.Equals("500")) return status;
    }
}
return "Ничего не нашли";
 
  • Спасибо
Реакции: LifeIsCool

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
C#:
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
    if (t.Url=="https://site.com")
    {
        string status = t.ResultCode.ToString();
       if(status.Equals("200") || status.Equals("500")) return status;
    }
}
return "Ничего не нашли";
Оказывается не разобрался. В Вашем варианте он почему-то не ищет данный сайт в мониторе трафика, в переменную выводит фразу "Ничего не нашли", хотя, когда я руками залажу в монитор трафика, то нахожу там ссылку. В чем может быть проблема?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Оказывается не разобрался. В Вашем варианте он почему-то не ищет данный сайт в мониторе трафика, в переменную выводит фразу "Ничего не нашли", хотя, когда я руками залажу в монитор трафика, то нахожу там ссылку. В чем может быть проблема?
Там каждый раз нужно перезагружать страницу. второй раз ничего не находит

C#:
instance.UseTrafficMonitoring = true;
//после UseTrafficMonitoring нужно перезагрузить страницу или перейти на нужную страницу
instance.ActiveTab.Navigate("https://site.com", "");
//после пауза. чтоб успело прогрузить трафик
Thread.Sleep(5000);

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
//  if (t.Url=="https://site.com")
    if(t.Url.Contains("site.com"))    //находит вхождение домена в адресе
    {
       string status = t.ResultCode.ToString();
       if(status.Equals("200") || status.Equals("500")) return status;
    }
}
return "Ничего не нашли";
 
  • Спасибо
Реакции: LifeIsCool

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Там каждый раз нужно перезагружать страницу. второй раз ничего не находит

C#:
instance.UseTrafficMonitoring = true;
//после UseTrafficMonitoring нужно перезагрузить страницу или перейти на нужную страницу
instance.ActiveTab.Navigate("https://site.com", "");
//после пауза. чтоб успело прогрузить трафик
Thread.Sleep(5000);

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic)
{
//  if (t.Url=="https://site.com")
    if(t.Url.Contains("site.com"))    //находит вхождение домена в адресе
    {
       string status = t.ResultCode.ToString();
       if(status.Equals("200") || status.Equals("500")) return status;
    }
}
return "Ничего не нашли";
Невозможно перезагрузить страницу, или перейти на нужную. Всё происходит на одной странице. Мне надо словить ответ с сайта, который придёт либо со статусом 200, либо 500. Буду пробовать. А я могу разбить код на два? Сначала вставляю код instance.UseTrafficMonitoring = true;, потом совершаю действие, далее вставляю код до конца?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Невозможно перезагрузить страницу, или перейти на нужную. Всё происходит на одной странице. Мне надо словить ответ с сайта, который придёт либо со статусом 200, либо 500. Буду пробовать. А я могу разбить код на два? Сначала вставляю код instance.UseTrafficMonitoring = true;, потом совершаю действие, далее вставляю код до конца?
да
 
  • Спасибо
Реакции: LifeIsCool

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Не понимаю. Оно то находит, то не находит.
Наблюдения: когда я выполняю проект первый раз, в мониторе трафика появляется нужный адрес со статусом, но код c# его не находит. Запускаю проект заново, очищаю кэш и куки, по второму кругу код с# находит url и кладёт статус в переменную. В чем может быть загвоздка?
 

LifeIsCool

Client
Регистрация
12.12.2015
Сообщения
44
Благодарностей
4
Баллы
8
Кажется разобрался. Всё дело в паузе. Не успевают прогрузится страницы, а код уже начинает выполняться. Спасибо огромное!
 
  • Спасибо
Реакции: SergSh

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