2016-01-18 45 views
2

reading一些examples後,我想要實現的helpshift履帶與登錄如:與形式(後)Jsoup登錄

https://target.helpshift.com/login/?next=%2Fadmin%2Fissues%2F

import org.jsoup.Connection; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 

public class JsouptTest { 

    public static void main(String[] args) throws Exception { 
     int x = 1; 
     Connection.Response loginForm = Jsoup.connect("https://target.helpshift.com/login/?next=%2Fadmin%2Fissues%2F" + x + "%2F") 
       .method(Connection.Method.GET) 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0") 
       .execute(); 

     Document document = Jsoup.connect("https://target.helpshift.com/login/") 
       .data("cookieexists", "false") 
       .data("username", "[email protected]") 
       .data("password", "123456") 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0") 
       .cookies(loginForm.cookies()) 
       .post(); 
     System.out.println(document); 

    } 

} 

不過,我得到這個錯誤:

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL= https://target.helpshift.com/login/ at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:537) at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493) at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205) at org.jsoup.helper.HttpConnection.post(HttpConnection.java:200) at edu.utfpr.helpcrawler.JsouptTest.main(JsouptTest.java:32)

回答

2

如果您檢查請求標頭,您會看到它會像您一樣發送cookie,但它也包含表單數據中的一部分cookie。將此添加到您的第二個請求中

.data("_csrf_token", loginForm.cookie("_csrf_token"))