[英]How to POST Data into website using Jsoup
我正在嘗試將數據發布到網站以使用 Jsoup 登錄該網站,但它不起作用?
我正在嘗試代碼
Document docs = Jsoup.connect("http://some.com/login")
.data("cmd", "login","username", "xxxx","password", "yyyyy")
.referrer("http://some.com/login/").post();
這里是在 pagesource 中提供正常的登錄頁面
我也試過代碼
Document docs = (Document) Jsoup.connect("http://some.com/login")
.data("cmd", "login","username", "xxxx","password", "yyyyy")
.referrer("http://some.com/login/").method(Method.POST).execute().parse();
在這里它也在頁面源中再次提供正常的登錄頁面。
任何有關相同的建議將不勝感激!
謝謝....
我將通過舉個例子來回答你的問題。 假設你想登錄 facebook。
然后除了用戶名和密碼之外,還有許多其他參數也通過POST
請求傳遞。 這些所有參數都是隱藏的,並且與用戶名和密碼類似地傳遞。 例如:
如果打開 facebook 的html source
,可以看到隱藏了一個參數lgnrnd
,其值為071129_5D7M
。
所以還有很多其他類似的參數。您需要傳遞所有參數。 您還應該指定userAgent.
Document doc = Jsoup.connect("http://www.facebook.com")
.data("email", "myemailid")
.data("pass", "mypassword")
// and other hidden fields which are being passed in post request.
.userAgent("Mozilla")
.post();
System.out.println(doc); // will print html source of homepage of facebook.
如果問題是 javascript 重定向,您可以嘗試進入 javascript 並檢查它重定向到的 URL 是否是 static,然后使用重定向獲得訪問權限。 我這樣做是為了訪問一次由 javascript 創建的彈出框。
也可以使用 Map 發送發布數據。 看起來更有條理和干凈。 有時網站會檢查某些標頭的存在,因此傳遞這些標頭以使請求盡可能相似。 大多數情況下,內容類型是預期的。
package test;
import java.util.HashMap;
import java.util.Map;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
/**
* POST example
*
* @author iampayload
*
*/
public class JsoupPost {
private final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:65.0) Gecko/20100101 Firefox/65.0";
private final String urlPost = "https://www.huawei.com/en/accounts/PersonalPost";
// main class
public static void main(String[] args) throws Exception {
JsoupPost http = new JsoupPost();
http.sendPost();
}
// HTTP Post request
private void sendPost() throws Exception {
Map<String, String> postData = new HashMap<>();
postData.put("username", "xxxx");
postData.put("cmd", "login");
postData.put("password", "yyyyy");
Document doc = Jsoup.connect(urlPost).ignoreContentType(true).userAgent(USER_AGENT).data(postData).post();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.