Авторизуйтесь на сайте и затем разместите на нем страницу - PullRequest
2 голосов
/ 05 августа 2009

Мне нужно войти на страницу, используя три параметра, после этого мне нужно отправить два параметра на другую страницу внутри сайта, на котором я только что вошел.

Пока у меня есть печенье с этим:

curl -c cookie.txt -d "username=username&pwd=pwd&domain=mydomain" http://myurl

... внутри куки у меня есть идентификатор JSESSION. Я использую cookie следующим образом:

curl -b cookie.txt -d "par=value" http://myurlnumbertwo

Проблемы:

  • даже после того, как POST к URL-адресу входа в систему я получаю в консоли HTML-код страницы входа в систему, означает ли это, что вход в систему не удался? Как я могу найти ошибку, которая вызвала это, может быть, журнал?
  • после успешного входа в систему, как мне остаться в сеансе входа и отправить мои параметры на другую страницу?

EDIT:

Я наконец-то получил эту работу после подсказки Страна, следует коду.

  • POST_DATA содержит точную зашифрованную строку, которая была отправлена, как в 'параметр1 = значение1 & параметр2 = значение2'
  • ACTION_URL содержит полный URL-адрес, на который отправляется форма, как в https://stackoverflow.com/users/login

Сначала я сделал

wget --save-cookie cookie.txt --post-data 'POST_DATA' ACTION_URL

, чтобы войти в систему и сохранить куки, затем:

wget --load-cookie cookie.txt --post-data 'POST_DATA' ACTION_URL

чтобы сделать POST, который мне был нужен, еще раз спасибо за подсказку ^^

1 Ответ

2 голосов
/ 06 августа 2009

Я бы попробовал wget. Существует опция --save-cookies и --load-cookies, которая позволяет использовать файл cookie. Также есть средство для обработки файлов cookie сеанса, --keep-session-cookies. Обратитесь к справочной странице wget для получения дополнительной информации:)

Лично мне повезло больше с постом через wget.

GL!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...