Не получается отправить куки в post экшене

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Добрый день.
Авторизуюсь через браузер:
1. захожу на страничку авторизации get запросом.
2. get_1 видны заголовки.
3. get_2 видны полученные куки.
4. ввожу логин и пароль, авторизуюсь.
5. post_1 видны заголовки.
6. post_2 видны отправленные куки.
Куки полученные get запросом и отправленные post запросом совпадают.
регистрация проходит успешно.
если авторизуюсь через get/post экшены
1. отправляю get запрос на получение страницы авторизации.
2. get_3 видны заголовки.
3. get_4 видны полученные куки.
4. отправляю post запрос.
5. post_3 видны заголовки.
6. post_4 видны отправленные куки.
Авторизация не проходит.
Почему через экшен не отправляется заголовок Host: ?
Почему через экшен на картинке post_4 не видны отправленные куки, т.е. их там нет.
Как это исправить?
Как корректно отправит куки, что бы они были видны на картинке post_4 так же как и на картинке post_2.?
 

Вложения

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
хост подхватывается автоматически, добавлять его не надо.
Куки не видны в мониторе трафика, если запрос без браузера. Нужно смотреть через фиддлер, например.

В общем, когда эти моменты сверишь с новым сниффером, сверишь идентичность отправленных заголовков, количества кук и т.д., и всё равно не получится сделать то, что хочешь - тогда будем думать, почему
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Нашел причину, но не знаю как ее устранить.
Браузер отправляет post на адрес https://www.nn.ru/auth/?backUrl=
Экшен отправляет post на адрес https://www.nn.ru/auth/?backUrl=
Экшен сам меняет в адресе "?" на "%3F", а "=" на "%3D".
Как это исправить? Адрес ввожу одинаковый и в браузере и в экшене.
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Почему то на форуме не получилось написать адрес сайта с "%3F" и "%3D"
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
попробуй отметить галку "оригинальный url" или как-то так
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
не помогло
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Нашел другой способ решения проблемы, но столкнулся с другими сложностями:
C#
var response = ZennoPoster.HTTP.RequestBytes
(
ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.POST,
"https://www.nn.ru/auth/",
"users_do=login&csrf_token=" + project.Variables["csrf_token"].Value + "&login=login&password=password&kod=%D0%BA%D0%BE%D0%B4",
"application/x-www-form-urlencoded",
"",//прокси
"UTF-8",
respType:ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
"",//куки
"Mozilla/5.0 (Windows NT 6.3; rv:55.0) Gecko/20100101 Firefox/55.04",
true,
5,
new[]{
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: en-US,en;q=0.5",
"Accept-Encoding: gzip, deflate, br",
"Referer: https://www.nn.ru/auth/",
"Connection: keep-alive",
"Host: www.nn.ru",
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: 117"
}//заголовки
);
return response;

Код не выполняется, выдает ошибку:
Компиляция кода Ошибка в действии "CS1738" "Спецификации именованных аргументов должны размещаться после всех указанных фиксированных аргументов.". [Строка: 9; Cтолбец: 2]
Если я правильно понял, что счет строк начинается с 0, то строка 9 это значение 30000.
Как решить эту проблемму?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
Нашел другой способ решения проблемы, но столкнулся с другими сложностями:
C#
var response = ZennoPoster.HTTP.RequestBytes
(
ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.POST,
"https://www.nn.ru/auth/",
"users_do=login&csrf_token=" + project.Variables["csrf_token"].Value + "&login=login&password=password&kod=%D0%BA%D0%BE%D0%B4",
"application/x-www-form-urlencoded",
"",//прокси
"UTF-8",
respType:ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
"",//куки
"Mozilla/5.0 (Windows NT 6.3; rv:55.0) Gecko/20100101 Firefox/55.04",
true,
5,
new[]{
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: en-US,en;q=0.5",
"Accept-Encoding: gzip, deflate, br",
"Referer: https://www.nn.ru/auth/",
"Connection: keep-alive",
"Host: www.nn.ru",
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: 117"
}//заголовки
);
return response;

Код не выполняется, выдает ошибку:
Компиляция кода Ошибка в действии "CS1738" "Спецификации именованных аргументов должны размещаться после всех указанных фиксированных аргументов.". [Строка: 9; Cтолбец: 2]
Если я правильно понял, что счет строк начинается с 0, то строка 9 это значение 30000.
Как решить эту проблемму?
respType: убери
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Браузер передает заголовки в теле запроса:
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: 117"
Как это сделать?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
Браузер передает заголовки в теле запроса:
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: 117"
Как это сделать?
Content-Type прописывается в поле "Тип данных"
Content-Length высчитается и добавиться сам
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
А как с помощью класса ZennoPoster.HTTP.RequestBytes получить куки при Get запросе что бы потом добавить их в Post запрос?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 805
Благодарностей
1 266
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
  • Спасибо
Реакции: one

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
А как с помощью класса ZennoPoster.HTTP.RequestBytes получить куки при Get запросе что бы потом добавить их в Post запрос?
Пользуйся ZennoPoster.HTTP.Request
Ответ будет в текстовом виде, куки парсишь регуляркой
 

one

Client
Регистрация
22.09.2015
Сообщения
6 805
Благодарностей
1 266
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
  • Спасибо
Реакции: one

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Проблема не решена!
В Zennopostere в мониторе трафика экшен передает запрос на нормальный адрес, а если смотреть другим снифером, то в запросе "?" меняется на "%3F" и "=" меняется на "%3D".
В итоге в ответе получаю 404 страница не найдена.
Это баг программы? Или как то можно решить эту проблему?
Пробовал авторизоваться через хром, фаерфокс, браузер zennoposter - авторизация проходит нормально.
Если авторизуюсь через экшен POST или экшен C# то знаки в адресе подменяются и авторизация не удается, т.к. запрос уходит на не существующую страницу.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 805
Благодарностей
1 266
Баллы
113
Проблема не решена!
В Zennopostere в мониторе трафика экшен передает запрос на нормальный адрес, а если смотреть другим снифером, то в запросе "?" меняется на "%3F" и "=" меняется на "%3D".
В итоге в ответе получаю 404 страница не найдена.
Это баг программы? Или как то можно решить эту проблему?
Пробовал авторизоваться через хром, фаерфокс, браузер zennoposter - авторизация проходит нормально.
Если авторизуюсь через экшен POST или экшен C# то знаки в адресе подменяются и авторизация не удается, т.к. запрос уходит на не существующую страницу.
Надо предварительно подготовить запрос. Как в C# сделать не знаю, может Док подскажет.

upload_2018-6-3_15-44-10.png
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
Проблема не решена!
В Zennopostere в мониторе трафика экшен передает запрос на нормальный адрес, а если смотреть другим снифером, то в запросе "?" меняется на "%3F" и "=" меняется на "%3D".
В итоге в ответе получаю 404 страница не найдена.
Это баг программы? Или как то можно решить эту проблему?
Пробовал авторизоваться через хром, фаерфокс, браузер zennoposter - авторизация проходит нормально.
Если авторизуюсь через экшен POST или экшен C# то знаки в адресе подменяются и авторизация не удается, т.к. запрос уходит на не существующую страницу.
Давай, чтобы я мог помочь, ты снабдишь меня полной информацией.
1. Как УСПЕШНЫЙ запрос выглядит в том самом другом сниффере
2. Как выглядит НЕУДАЧНЫЙ запрос в этом сниффере, отправленный через экшн или код
3. Как выглядит экшн, его заполненные поля или, если используется код, как выглядит код
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Сделал, но все равно HTTP Analyzer показывает отправку адрес с подменой этих двух знаков.
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Давай, чтобы я мог помочь, ты снабдишь меня полной информацией.
1. Как УСПЕШНЫЙ запрос выглядит в том самом другом сниффере
2. Как выглядит НЕУДАЧНЫЙ запрос в этом сниффере, отправленный через экшн или код
3. Как выглядит экшн, его заполненные поля или, если используется код, как выглядит код
Ок. Подготовлю информацию и отпишусь.
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Давай, чтобы я мог помочь, ты снабдишь меня полной информацией.
1. Как УСПЕШНЫЙ запрос выглядит в том самом другом сниффере
2. Как выглядит НЕУДАЧНЫЙ запрос в этом сниффере, отправленный через экшн или код
3. Как выглядит экшн, его заполненные поля или, если используется код, как выглядит код
1. Файлы с названием get/post_b_ запрос сделан через браузер zennoposter. Авторизация успешна.
2. Файлы с названием get/post_e_ запрос сделан через экшен get/post. Авторизация не успешна. Происходит подмена знаков в адресе.
3. Файлы с названием get/post_c_ запрос сделан через C#. Авторизация не успешна. Происходит подмена знаков в адресе
 

Вложения

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113
1. Файлы с названием get/post_b_ запрос сделан через браузер zennoposter. Авторизация успешна.
2. Файлы с названием get/post_e_ запрос сделан через экшен get/post. Авторизация не успешна. Происходит подмена знаков в адресе.
3. Файлы с названием get/post_c_ запрос сделан через C#. Авторизация не успешна. Происходит подмена знаков в адресе
какая версия программы? я вот попробовал на 5.17.0.0
Результат
Зенно


Фиддлер



Ссылка никак не меняется
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8

doc

Client
Регистрация
30.03.2012
Сообщения
8 621
Благодарностей
4 607
Баллы
113

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
УРАААААААА ЗАРАБОТАЛО!!!!!!!!
СПАСИБО.
Поставил версию 5.17.1.0
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Еще один вопрос.
Как в коде C# сохранить куки в get запросе и потом использовать эти куки в post запросе?
 

kmvzen

Пользователь
Регистрация
04.04.2018
Сообщения
49
Благодарностей
1
Баллы
8
Последний вопрос не актуален.
 

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