Как войти и перенаправить через HttpClient в Java - PullRequest
0 голосов
/ 17 декабря 2011

Хотя таких вопросов несколько, на самом деле меня смущают разные ответы ..... Я использую HttpClient 4.X.X

есть URL http://mail.rediff.com/cgi-bin/login.cgi, который предназначен для входа в Rediffmail .... Я передаю login = my_username & passwd = my_password & submit = GO & FormName = существует с указанным выше URL ..... когда это делается в браузере как http://mail.rediff.com/cgi-bin/login.cgi?login=my_username&passwd=my_password&submit=GO&FormName=existing

Он правильно регистрирует меня и переносит на мою почтовую страницу

но когда я делаю через HttpClient

    HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("http://mail.rediff.com/cgi-bin/login.cgi?login=my_username&passwd=my_password&submit=GO&FormName=existing");
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
    //  HttpResponse response = httpclient.execute(httpget);
        String responseVal = httpclient.execute(httpget, responseHandler); System.out.println(responseVal);

Это дает мне вывод в HTML с

JavaScript в шапке как - window.location.replace ( "http://f1mail.rediff.com/iris/postlogin.php?login=my_username& session_id = 1L4PK1KHKGIpbBG5OlVVdOzip1m7wyU & фермы = 1 & showinbox = & mobilelogin = & URL = ");

тело как - Если вы видите эту страницу, настройки вашего браузера не позволяют автоматически перенаправлять на новый URL.

Пожалуйста, нажмите, чтобы продолжить.

тогда как я хочу, чтобы он полностью перенаправлялся при входе в браузер ........ и я хотел использовать этот окончательный URL-адрес далее.

Любое руководство или, кроме того, уточнение было бы полезно .....

Спасибо Сэм т.е

1 Ответ

0 голосов
/ 17 декабря 2011

Теоретически, если вы воспроизводите тот же HTTP-запрос в Java, результат должен быть таким же. Таким образом, между вызовом Java и реальным должно быть некоторое различие.

Мой совет - использовать некоторые инструменты для получения каждого параметра, передаваемого в HTTP-запросе. Я бы порекомендовал использовать инструменты разработчика Chrome (CMD + ALT + i на Mac) или расширение Firebug Firefox для проверки HTTP-запроса. Я сам посмотрел на это:

[декламация] Хорошо, у меня был красивый скриншот инспектора сети, показывающий запрос, но мне все еще нужно заработать 10 баллов, чтобы опубликовать изображения в stackoverflow. Извини чувак! [истекшим декламация]

Первое, что я заметил, это то, что вам нужно сделать запрос POST, а не GET. Другие детали могут ускользнуть, что приведет к сбою вашего HTTP-запроса Java.

Я бы порекомендовал попробовать REST-клиенту, чтобы вы могли скомпоновать запрос и попробовать его, прежде чем переходить к Java-коду. Есть несколько автономных клиентов, а также некоторые расширения Chrome и FireFox. Как только это сработает, вам просто нужно добавить его в свой Java-код и так далее.

* Приветствия 1014 *!
...