我使用的是JavaLite实现,请求HTTP服务时一切正常,但当尝试从HTTPS版本的服务获取数据时,我得到HttpException“失败的URL”。
下面是我的代码:
Get get = Http.get(url + "/eds/api/v1/certificados");
get.header("Authorization", "Basic " + Credentials);
get.header("APIKey", APIKey);
get.header("Accept", "application/json");
System.out.println(get.text());还尝试使用
String test = Http.get(url + "/eds/api/v1/certificados").header("Authorization", "Basic " + Credentials).header("APIKey", APIKey).header("Accept", "application/json").text();它们的行为方式是一样的,如果URL是HTTP,我可以获取数据,如果URL是HTTPS catch“失败的URL”。我已经使用SOAPui测试了REST服务,HTTPS服务器工作正常。
有什么建议,当我尝试在HTTPS上发送带有报头的GET时遗漏了什么?
发布于 2018-03-24 02:32:32
我打算建议该站点的数字证书不是由Java JRE证书存储中包含的证书颁发机构签署的。
以下是您可以执行的操作:
Java的文件是:
$JAVA_HOME/jre/lib/security/cacerts您需要运行以下命令:
keytool -list -keystore cacerts当提示输入密码时,只需按Enter键。
如果您没有看到用于签署您站点的证书的CA的证书,则会出现此错误。
修复方法:
或者:
keytool -importcert ...
有关keytool程序的详细信息,请执行以下操作:
keytool --helphttps://stackoverflow.com/questions/49442519
复制相似问题