HTTP-запрос POST для входа в систему с именем пользователя и паролем с помощью скрипта Java и c ++ - PullRequest
0 голосов
/ 07 марта 2011

Я разрабатывал приложение с C++, и для некоторых его частей требуется подключение к http-серверам, мне удалось отправить GET и HEAD запросов и получить веб-страницу.

В настоящее время я пытаюсь отправить форму запроса POST на веб-сайт, для которого требуется вход в систему с информацией. Это похоже на запрос GET , однако я незнаете, как его написать.

скажем:

POST /users/login HTTP/1.1
HOST: www.example.com
Content-Length: 50, 
username: ME
password: pass

, а затем получите аутентификацию для получения требуемых страниц для входа в систему,

Как мне написать POST request!?

На сайте используется форма аутентификации.Я имею в виду, что есть поле для ввода адреса электронной почты и пароля, а затем нажмите «Отправить».насколько мне известно, это написано в JS .

Любая помощь или направление приветствуется.

Ответы [ 2 ]

5 голосов
/ 07 марта 2011

Попробуйте переписать ваш запрос как:

POST /users/login HTTP/1.1
HOST: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

username=ME&password=pass

Я думаю, что '25' - правильная длина.

В качестве упражнения вы можете загрузить инструменты HTTP, которые позволяют выполнять отладку, например WireShark, а затем войти на общий форум, на котором нет систем безопасного входа в систему, подобных тем, которые обычно используются на форумах phpbb.

0 голосов
/ 07 марта 2011

POST является одним из методов http, таких как GET, HEAD и т. Д., Несколько основ относительно самого HTTP.Это текстовый протокол (вы можете подключиться к порту 80 сервера с помощью клиента telnet, например, putty, и набрать весь запрос вручную).

Первая строка содержит метод (GET, HEAD, POST и т. Д.), Путь URL и версию протокола HTTP, которую вы поддерживаете.Я рекомендую использовать HTTP1.0, так как вы не будете отправлять несколько запросов в одном соединении.Это сложнее реализовать.

Следующий набор строк называется заголовком, каждая строка содержит ключ (тип содержимого, длина содержимого, хост и т. Д.) И значение, разделенное знаком «:».

Тогда все, что отправлено, является телом запроса.Информация должна быть закодирована.Прочитайте http://www.w3schools.com/tags/ref_urlencode.asp

Теперь перейдем к вашей проблеме, если вы уже знаете, как выполнить GET, тогда с этим предположением для POST требуются следующие шаги.

  1. Запрос будет "POST HTTP / 1.0 "
  2. Послать хотя бы эти заголовки

Тип содержимого: application / x-www-form-urlencoded Content-Length:

  1. В качестве тела отправьте кодированный в urlen-формате текст, содержащий inputname1 = value1 & inputname2 = valule2
  2. Теперь вы должны получить информацию с сервера.

Надеюсь, это поможет.Если вы хотите узнать больше, прочитайте http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html

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