我使用Unirest與Java,試圖登錄遠程網頁。Java:後請求登錄遠程網站,在登錄按鈕上使用JavaScript
我可以用Chrome開發者工具和HTTP Trace是該網站是在頭使用POST使用XMLHttpRequest看到:
POST [現場] /Services/UserService.asmx/Authenticate
產地:[現場]
X-DevTools - 模擬 - 網絡的條件,客戶端ID:86825bab-dcb4-4bef-885e-5350c11fe43b
X-要求 - 由於:XMLHttpRequest的
的User-Agent:Mozilla的/ 5.0(Windows NT的10.0; Win64平臺; 64 )AppleWebKit/537.36(KHTML,如Gecko)Chrome/57.0.2987.133 Safari/537.36
Content-Type:application/json;字符集= UTF-8
接受:/
Referer的:[站點]
接受編碼:gzip,放氣,BR
接受語言:DA-DK,噠; Q = 0.8,EN-US; q = 0.6,en; q = 0.4
Cookie:ASP.NET_SessionId = xgea1elpr3dmrgbsotcghu5k; _ga = GA1.2.632065975.1472
如果我檢查該網站的源代碼,我可以看到他們提交按鈕使用JavaScript .onClick()。 這是一些處理的用戶名和密碼的JavaScript部分的代碼剪斷(它在.onClick()):
...
var service = new Website.Services.UserService();
service.Authenticate(email, password, rememberMe, referrer,
function(result) {
if (!result.Authenticated) {
var message = result.Message || "Det var ikke muligt at logge ind med din e-mail og kode";
button.closest("fieldset").find(".error-text").text(message).show();
return;
} else {
// Redirect to my page
location.href = result.Url;
}
}, function() {
alert("Det var ikke muligt at få forbindelse til serveren, opdater siden og prøv igen");
}, true);
...
我的問題是,我可以「模擬」以上的JavaScript,與Unirest(或類似於Java),所以我可以登錄頁面? 如果是這樣,怎麼樣?
或者有沒有辦法「旁路」是?
我很喜歡Selenium和PhantomJS可能可以解決它,但在這種情況下,這些方法是無法使用的問題。