Из скрипта я хочу войти на сайт. Для этого я искал источник для запроса POST. Почтовый запрос на вход на сайт содержит данные "username", "passwort", "timestamp" и "token". Однако, когда я копирую метку времени и токен и вставляю запрос на публикацию в адресную строку моего браузера с моим именем пользователя и паролем, вот так:

https://example.com/action/login?__elgg_token=905adbf0c0111fef78a8344c38c8f2a8&__elgg_ts=1461577445&username=foo&password=bar

логин неудачен. Нужен ли другой токен и метка времени?

Это из источника:

action="https://example.com/action/login" method="post" > 

<input type="hidden"  name="__elgg_token"  value="905adbf0c0111fef78a8344c38c8f2a8" />

<input type="hidden"  name="__elgg_ts"  value="1461577445" />

<input type="text"   name="username"  value="" class="form-control login-textarea form-control" />

<input type="password"   name="password"  value="" class="form-control login-textarea" />

1 ответ1

0

когда я копирую метку времени и токен и вставляю [это в URL в адресной строке браузера] ... логин неудачен

AFAIK адресная строка в обычных веб-браузерах заставляет браузер выдавать HTTP-запрос GET, а не HTTP-запрос POST.

Как прокомментировал Class Stacker . Вы не можете предполагать, что запрос POST может быть преобразован в эквивалентный запрос GET, который будет распознан сервером.

Из скрипта я хочу войти на сайт [который ожидает HTTP POST-запрос]

Если вы используете обычный язык сценариев командной строки, есть несколько инструментов, которые вы можете использовать для выдачи запроса POST.

Из сценария оболочки вы можете использовать такие инструменты, как Wget или cURL, для выдачи POST-запросов, захвата любых полученных файлов cookie сеанса и т.д.

Скрипты, написанные с использованием других языков сценариев или более общих языков (Perl, Ruby, Python и т.д.), Обычно имеют стандартные библиотеки, предназначенные для отправки запросов POST и GET, управления файлами cookie и т.д.

Пример из справочной страницы Wget

# Log in to the server.  This can be done only once.
wget --save-cookies cookies.txt \
     --post-data 'user=foo&password=bar' \
     http://server.com/auth.php

# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
     -p http://server.com/interesting/article.php

Другие примеры не трудно найти

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .