Я искал в Google, как войти на веб-страницу с htmlunit, но безуспешно, вот мой код, для информации, которую я использую htmlunit версия: 2.36 . URL-адрес, необходимый для аутентификации (с моей учетной записью):
https://sycm.aliexpress.com/api/public/categories?lang=en_US
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebResponse;
import com.gargoylesoftware.htmlunit.html.*;
import org.springframework.beans.factory.annotation.Value;
import java.io.IOException;
public class TestLogin {
static String categoriesUrl="https://sycm.aliexpress.com/api/public/categories?lang=en_US";
static String loginUrl="https://sycm.aliexpress.com/api/public/categories?lang=en_US";
static String loginForm= "login-form";
static String loginId="fm-login-id";
static String passwordId="fm-login-password";
static String btnSubmitId="fm-login-submit";
static String login="login";
static String password="pass";
public static void main(String[] args) {
WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
HtmlPage page1 = null;
try {
page1 = webClient.getPage(loginUrl);
String htmlBody = page1.getWebResponse().getContentAsString();
System.out.println(htmlBody);
} catch (IOException e) {
e.printStackTrace();
}
HtmlForm form = (HtmlForm) page1.getElementById(loginForm);
HtmlTextInput textField = (HtmlTextInput) page1.getElementById(loginId);
textField.setValueAttribute(login);
HtmlPasswordInput textField2 = (HtmlPasswordInput) page1.getElementById(passwordId);
textField2.setValueAttribute(password);
//HtmlSubmitInput button = (HtmlSubmitInput) page1.getElementById(btnSubmitId);
try {
HtmlButton button = (HtmlButton) form.getButtonByName("");
HtmlPage page2 = button.click();
//HtmlPage page2 =button.getEnclosingForm().click();
String htmlBody = page2.getWebResponse().getContentAsString();
System.out.println(htmlBody);
webClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Может ли кто-нибудь помочь, пожалуйста, я пробовал также jsoup, но ничего не работает. если в java есть какой-либо другой фреймворк, я могу его использовать.