2013-06-17 5 views
0

У меня возникают проблемы с попыткой входа в систему с помощью jsoup для входа. Я не уверен, есть ли у этого cookie файлы cookie? Я что-то упускаю? почему я не могу войти?jsoup post login не перерисовывается

import java.io.IOException; 
import java.util.Map; 

import org.jsoup.Connection.Method; 
import org.jsoup.Connection.Response; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 

public class LoginJtest { 

    /** 
    * @param args 
    * @throws IOException 
    */ 
    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 
     // Connect to page and parse html into a 'Document' 


     //This will get you the response. 
     Response res = Jsoup 
      .connect("https://pslweb01.ciq.labs.att.com:8080/dis/login.jsp") 
      .data("txtUserName", "myusername", "txtPassword", "mypassword") 
      .method(Method.POST) 
      .execute(); 

     //This will get you cookies 
     Map<String, String> loginCookies = res.cookies(); 

     //And this is the easiest way I've found to remain in session 
     Document doc = Jsoup.connect("https://pslweb01.ciq.labs.att.com:8080/dis/") 
       .cookies(loginCookies) 
       .get(); 
      String title = doc.title(); 
     System.out.println(title); 


    } 
} 

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

<div class="loginPanel"> 
    <div class="container"> 
    <div class="title">Login</div> 
    <form id="loginForm" class="loginForm" method="POST" action="/dis/login"> 
     <font class="portlet-msg-error" 
     style="font-weight: bold; font-size: 10px; color:#FF0000; text-align: center;"></font> 
     <table> 
     <tr> 
      <td class="label">USERNAME:</td> 
      <td><input 
       value="" 
       class="edit" 
       id="txtUsernameLogin" 
       name="txtUserName" 
       type="text"/></td> 
     </tr> 
     <tr> 
      <td class="label">PASSWORD:</td> 
      <td><input 
       value="" 
       class="edit" 
       name="txtPassword" 
       type="password"/></td> 
     </tr> 
     <tr> 
      <td colspan="2" align="center"> 
      <input type="checkbox" name="txtRemember" value="true" align="middle"/> 
      Remember me on this computer 
      </td> 
     </tr> 
     <tr> 
      <td></td> 
      <td class=""><input type="submit" 
        class="submit" 
        value="Login" 
        alt="Login"/></td> 
     </tr> 
     </table> 
    </form> 
    </div> 
</div> 
+0

Испытываете ли вы проблемы при входе в систему или ожидаете перенаправления после входа в систему? Ваш вопрос и предмет противоречивы. Если вы не можете войти в систему, то что такое «Ответ», который вы получаете, попробовали ли вы перекрестно проверить вывод этого действия с помощью «Браузера против Jsoup». Просто проверьте вывод в «Сетевой вкладке браузера Chrome» и Jsoup Output. – Niranjan

+0

Я не могу получить перенаправление после входа в систему, он отображает тот же заголовок выхода из страницы входа. Заголовок со страницы, которую я должен перенаправить, - это «Все устройства», и я получаю «логин». Я также пытаюсь добавить .useragent в chrome и mozilla, и такой же результат не поможет. – Gio

ответ

0

Похоже, вы публикуете в /dis/login.jsp тогда посты формы к/DIS/войти в

Это также может быть из-за особенностей безопасности, используемых на сайте. Попробуйте настроить реферер, пользовательский агент и т. Д. В Jsoup.

+0

Что вы подразумеваете под "try setting referrer"? Я добавил userAgent в ответ, и он не сработал для меня \t .userAgent («Mozilla») – Gio

+0

Добавление [referrer] (https://en.wikipedia.org/wiki/HTTP_referer) может быть выполнено с помощью. referrer (String url). И вы пытались изменить почтовый адрес? –

Смежные вопросы