javafx webview 解决cookie 丢失、https图片不显示、设置代理
private static void loadWebView() {Platform.runLater(() -> {TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {@Overridepublic X509Certificate[] getAcceptedIssuers() {retur.
·
private static void loadWebView() {
Platform.runLater(() -> {
TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
}
};
SSLContext sc = null;
try {
sc = SSLContext.getInstance("SSL");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
try {
sc.init(null, trustAllCerts, new java.security.SecureRandom());
} catch (KeyManagementException e) {
e.printStackTrace();
}
ProxyNode proxy = PddApi.getProxy();
if (proxy == null) {
JOptionPane.showMessageDialog(null, "代理IP获取失败,请联系管理员", "提示", JOptionPane.ERROR_MESSAGE);
return;
}
System.setProperty("http.proxyHost", proxy.getIp());
System.setProperty("http.proxyPort", proxy.getPort() + "");
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
HostnameVerifier allHostsValid = (hostname, session) -> true;
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
String sign = "Basic " + proxy.getSign();
HttpsURLConnection.setDefaultRequestProperty("Proxy-Authorization", sign);
webView = new WebView();
webView.getEngine().setJavaScriptEnabled(true);
webView.getEngine().setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36");
webView.setContextMenuEnabled(true);
webView.setCache(true);
webView.getEngine().setOnStatusChanged(event -> {
currentUrl = webView.getEngine().getLocation();
});
webView.getEngine().load(HOME_PAGE);
jFXPanel.setScene(new Scene(webView));
});
}
注意:用:com.sun.webkit.network.CookieManager 不用:java.net.CookieManager
private static String getCookies() {
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
try {
Map<String, java.util.List<String>> result = cookieManager.get(new URI(currentUrl), new HashMap<>());
java.util.List<String> cookies = result.get("Cookie");
String cookie = cookies.get(0);
System.out.println(cookie);
return cookie;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)