А что нужно сделать, чтобы сбор куки шел со всех HTTP клиентов, расположенных в разных контейнерах(Контейнеры простые)?
Этот топик читают: Гость
Ответов: 21
Рейтинг: 0
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Вроде, HTTPClient будуть видеть менеджера уровнем выше. Помести CookieManager в главной схеме и укажи его в HTTPClient-ах в контейнерах.
|
|||
карма: 26 |
|
Ответов: 1328
Рейтинг: 69
|
|||
Sersey, имя домена в примере vovahovalot.business.site, домен 3 го уровня
|
|||
карма: 2 |
|
Ответов: 21
Рейтинг: 0
|
|||
Мне необходимо скопировать (воссоздать) POST запрос. Я вижу следующую картину: Form Data ; name: name ; password: password ;. Мне необходимо отправить контент следующего типа: name=name&password=password ;, или иначе?
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Method=POST
PostData= name=name password=password Редактировалось 1 раз(а), последний 2019-12-16 13:23:28 |
|||
карма: 26 |
|
Ответов: 21
Рейтинг: 0
|
|||
Еще я обнаружил следующую деталь в заголовках запроса: POST /login HTTP/1.1; Как указать это в свойствах?
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
POST - это метод запроса: Method=POST
/login или что угодно - это то, что в URL идёт после имени домена. Берется автоматически из URL. Например, эта страница имеет URL https://forum.hiasm.com/topic/62708/14, тогда в запросе браузер указывает GET /topic/62708/14 HTTP/1.1 HTTP/1.1 - не имеет значения, компонент сам укажет. Там же в папке есть пример POST. Указываешь свои данные и пробуешь. Хотя, если речь идёт об авторизации, то все HTTPClient должны быть подключены к CookieManager, тогда первым запросом делается авторизация и устанавливается сессия, остальные запросы уже работают авторизованными. Редактировалось 3 раз(а), последний 2019-12-16 14:17:03 |
|||
карма: 26 |
|
Ответов: 21
Рейтинг: 0
|
|||
Подскажите пожалуйста, что я делаю не так? (Необходима авторизация)(Извиняюсь за посторонний сайт)
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Никакой HTTP_PostBuilder не нужен.
|
|||
карма: 26 |
|
Ответов: 21
Рейтинг: 0
|
|||
Так ведь нужен host, да и если авторизация работает, то сервер будет возвращать не 200, а 302
|
|||
карма: 0 |
|
Ответов: 4628
Рейтинг: 749
|
|||
'Host' - это заголовок в запросе, компонент сам поставит из URL.
Kotofey писал(а): то сервер будет возвращать не 200, а 302302 - это код перенаправления ресурса. Обрабатывается компонентом автоматически. Не имеет отношения к авторизации. Есть разные методы авторизации: - Basic, Digest (возвращают статус 401) - пользовательская на основе Cookie. Первые компонент реализует автоматически, достаточно указать HTTPUser+HTTPPass. Основаны на обмене специальными заголовками и не имеют отношения к POST. Такой метод авторизации, например, используется при доступе в админ-панель роутера. Большинство сайтов, типа форумов и магазинов, реализуют второй способ. Для этого используется механизм cookie для идентификации пользователя при множественных запросах (сессия). А для авторизации на сервер предварительно POST-запросом отправляется логин и пароль. В случае успешной авторизации на сервере в параметрах сессии устанавливается флаг "пользователь авторизован". Последующие запросы передают через куки идентификатор сессии, по которому сервер видит что запрос идёт от авторизованного пользователя. Ты же мониторишь запросы - посмотри какие запросы посылает браузер, какие ответы получает. И сравни с запросами через компонент. Литературку почитай... Редактировалось 4 раз(а), последний 2019-12-17 15:17:11 |
|||
карма: 26 |
|
Ответов: 21
Рейтинг: 0
|
|||
Благодарю за помощь, авторизация работает
|
|||
карма: 0 |
|
Ответов: 207
Рейтинг: 14
|
|||
Netspirit, Спасибо за HTTPClient. Есть ли возможность менять method POST/GET через точку динамически? Через CustomMethod этого сделать у меня не получилось.
|
|||
карма: 2 |
|
Ответов: 4628
Рейтинг: 749
|
|||
Почему не получилось? Это свойство для того и предназначено. Задаёшь "GET" или "POST" в качестве значения.
Только для GET надо обеспечить чтобы на PostData и UploadFile не было никаких данных, так как при CustomMethod компонент их всегда отправляет, не разбирая при каком методе они нужны или нет. На крайний случай можешь поправить свойство Method в *.ini и *.pas файлах, чтобы можно было отметить свойство для указания в runtime. По аналогии с другими свойствами. Редактировалось 1 раз(а), последний 2020-01-23 15:08:00 |
|||
карма: 26 |
|
Ответов: 207
Рейтинг: 14
|
|||
Netspirit, Делаю так, не работает. Если CustomMethod не пуст, то ничего не происходит.
Netspirit писал(а): На крайний случай можешь поправить свойство Method в *.ini и *.pas файлах, чтобы можно было отметить свойство для указания в runtime. По аналогии с другими свойствами.Это понятно, лезть самому в код не хочется т.к. компонент постоянно обновляется. Тогда продублирую в схеме компонент с POST/GET методами, и при сравнении метода будет выбираться один из вариантов. |
|||
карма: 2 |
|