- Регистрация
- 09.10.2015
- Сообщения
- 3 916
- Благодарностей
- 3 867
- Баллы
- 113
Очень часто, при работе через GET/POST-запросы в ZennoPoster, я сталкиваюсь с тем, что мне нужно узнать какой ответ сервера пришел. Чаще всего я так проверяю просто на отсутствие 404 ошибки (точнее, на то, что страница при GET-запросе отдает 200 ответ сервера).
К сожалению, в текущей зенке не предусмотрено (на сколько мне известно) простое получение ответа сервера при работе через кубик HTTP Get, поэтому я запилил свою обработку ответа сервера. Причем обработку умную, чтоб она учитывала и редиректы тоже (чтоб пропускала их и смотрела только на окончательный ответ).
Выглядит данная обработка следующим образом:
С# код:
В данном сниппете вам нужно только поменять переменную base_url_response на свою, в которой содержится результат выполнения кубика HTTP Get (в котором загружаются только заголовки!).
Результат выполнения данного кода:
В случае, если вам нужно получить и ответ сервера, и содержимое страницы - нужно чуть допилить сниппет. Если у кого-то возникнет такая ситуация - напишите в комментах, я скину исправленную версию.
К сожалению, в текущей зенке не предусмотрено (на сколько мне известно) простое получение ответа сервера при работе через кубик HTTP Get, поэтому я запилил свою обработку ответа сервера. Причем обработку умную, чтоб она учитывала и редиректы тоже (чтоб пропускала их и смотрела только на окончательный ответ).
Выглядит данная обработка следующим образом:
С# код:
Код:
var resp = project.Variables["base_url_response"].Value;
string[] stringSeparators = new string[] {"\r\n\r\n"};
resp = resp.Trim();
String[] resps = resp.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
resp = resps[resps.Length-1];
resp = resp.Substring(0, resp.IndexOf('\n')+1);
resp = resp.ToLower();
resp = resp.Replace(" ", " "); // тут обязательно в первом аргументе у Replace должно быть 2 пробела - перепроверяйте!!!
return (resp.IndexOf("200 ok") > -1);
Результат выполнения данного кода:
- True - если страница вернула статус 200.
- False - если пришел какой-либо другой ответ сервера.
В случае, если вам нужно получить и ответ сервера, и содержимое страницы - нужно чуть допилить сниппет. Если у кого-то возникнет такая ситуация - напишите в комментах, я скину исправленную версию.