https Java:模拟wget nocheckcertificate
我必须用java模拟以下wget命令:
wget.exe --no-check-certificate --user utente --password pordine - https://x.x.x.x:YYYY/jsonContent
我几乎做到了,但有些地方出了问题,因为——我想——我无法设置选项——没有我在命令行命令中拥有的检查证书
以下是我的主要观点:
//main
URL url;
try {
url = new URL("https://x.x.x.x:YYYY/jsonContent");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
String userPassword = "utente:pordine";
String encoded = Base64.getEncoder().encodeToString((userPassword).getBytes(StandardCharsets.UTF_8));
conn.setRequestProperty("Authorization", "Basic "+encoded);
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", acceptProperty);
//hOW TO SIMULATE THE OPTION --no-check-certificate ?
System.out.println("Response Code : " + conn.getResponseCode()); //500
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} catch ...
而且。。。以下是我得到的错误:
java.io.IOException: Server returned HTTP response code: 500 for URL: https://x.x.x.x:YYYY/basicAuth
==更新==
我回到问题上来;我修改了服务器部分,以提供更多日志。我更接近根本原因。 服务器有一个类来管理身份验证:AuthManager。这是注入的,所以我重写了这个类的构造函数,以便在每次调用它时都进行日志记录
当我通过浏览器访问URL时,构造函数AuthManager()会被调用一次,并且在整个会话期间会保留有关身份验证的值。 但是,当我通过脚本访问同一URL时,构造函数会被调用两次:在第一次调用之后,AuthManager中设置了一些信息,但之后,对象会被第二次调用构造函数覆盖。新对象将不会设置一些变量,当需要这些数据时,将启动异常
你知道如何更改我的脚本以?我会继续写更多的信息。 看来我需要一个单身汉之类的东西来参加会议——或者类似的东西
共 (0) 个答案