Сценарий переноса порта в Java - PullRequest
1 голос
/ 10 марта 2011

Я нашел следующий скрипт bash, который хотел бы использовать в приложении для Android.Несмотря на то, что я потратил некоторое время на разработку приложений, у меня практически нет опыта работы с bash / http, и я не знаю, с чего начать.

Например, функция входа выглядит так:

curl \
    --location \
    --cookie "$COOKIES" \
    --cookie-jar "$COOKIES" \
    --output /dev/null \
    "http://connect.garmin.com/signin" && \
  curl \
    --location \
    --cookie "$COOKIES" \
    --cookie-jar "$COOKIES" \
    --data "login=login&login%3AloginUsernameField=$USER&login%3Apassword=$PASSWORD&login%3AsignInButton=Sign+In&javax.faces.ViewState=j_id1" \
    --output - \
    "https://connect.garmin.com/signin" |\

какcurl соответствует командам Android HttpClient и т. д.

Код отсюда: http://braiden.org/?p=62#more-62

1 Ответ

1 голос
/ 10 марта 2011

Curl - это программа, которая позволяет (через командную строку) загружать запросы http и https без использования браузера. Это похоже на команду wget .

Между тем, Android-HttpClient не является командой или даже функцией . Это API на основе классов, который позволяет выполнять http-запросы.

Я бы порекомендовал вам пройти по странице справки Curl (на которую я ссылался) и посмотреть, можете ли вы увидеть, что делают различные параметры, передаваемые в Curl. Эта команда дважды обращается к одному и тому же URL "http://connect.garmin.com/signin". В первый раз он просто проверяет, доступен ли он. Если это так, будет запущена вторая команда curl. Вот что означают различные параметры:

  • - location : Если веб-страница переместилась на другой URL-адрес, она попытается снова запустить команду curl, используя новый URL-адрес.
  • - cookie : cookie используется для отслеживания пользовательских запросов. Это позволяет серверу знать, что тот же человек посещает еще раз. Каждый URL-запрос обычно является отдельным и независимым, поэтому http использует так называемые сеансовые куки-файлы для отслеживания пользователя при посещении веб-сайта. Обычно параметр задается как key=value, и это файл cookie для использования.
  • - cookie-jar : это файл, в котором сервер может хранить сеансовые куки в вашей локальной системе. Это позволяет серверу получать и извлекать информацию о сеансе.
  • - output : Это место для вывода веб-страницы, полученной с сервера. /dev/null - это место, где вы можете выбросить вещи, которые вам не нужны. - означает печать веб-страницы на экране.

По сути, первая команда curl попадает на страницу входа в Garmin (http://connect.garmin.com/signin). Она отбрасывает данные. Это делается только для того, чтобы проверить, действительно ли веб-страница запущена.

Вторая команда curl входит в систему. Строка --data - это данные, отправляемые на веб-страницу. Он притворяется, что вы заполнили форму входа на странице входа, и отправляет Garmin ваше имя пользователя и пароль. Вывод с этой страницы поступает на терминал как вывод веб-страницы http (я уверен, что он анализируется для получения необходимой информации).

Вы говорите, что некоторое время были разработчиком Android, поэтому я предполагаю, что вы знаете о программировании Android и понимаете, как работает API Android. Я не являюсь разработчиком Android, но я просмотрел документацию по AndroidHttpClient API , и она не выглядит такой сложной. По сути, вам нужно создать объект, который может отправить запрос на http://connect.garmin.com/signin, чтобы убедиться, что он запущен и работает, и если это так, вы отправляете еще один запрос на https://connect.garmin.com/signin для входа. Отправляемые вами данные находятся в --data параметр.

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