ssl证书如何解决javax。网ssl。SSLPeerUnverifiedException:使用java的Rally Rest api中的对等未验证异常?
这是我的密码。 我想使用QueryResponse从Rally Api获取数据。但它展示了javax。网ssl。SSLPeerUnverifiedException:对等未验证异常对等未验证。我想用这个 测试Rally的webservice api的java工具包。我们有一个拉力赛的内部设置。我的代码如下所示:
public static void main(String[] args) throws URISyntaxException
{
String projectRef = "/project/123";
RallyRestApi restpoint = new RallyRestApi(new URI("http://rally1.rallydev.com"), "_api key");
// i have added following section because which is given as a solution for above exception. but then also it is giving me javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated exception
HttpClient client = restpoint.getClient();
try
{
SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy() {
public boolean isTrusted(X509Certificate[] certificate, String authType) throws CertificateException
{ //trust all certs
return true;
}}, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
client.getConnectionManager().getSchemeRegistry().register(new Scheme("https", 443, sf));
}catch (Exception e)
{
System.out.println(e);
}
try {
String version = restpoint.getWsapiVersion();
System.out.println("version : " + version);
QueryRequest defects = new QueryRequest("hierarchicalrequirement");
defects.setFetch(new Fetch("FormattedID","Owner", "Name", "State", "Iteration", "Project", "Defect", "ScheduleState", "PlanEstimate"));
defects.setOrder("FormattedID ASC");
defects.setProject(projectRef);
defects.setQueryFilter(
new QueryFilter("Iteration.StartDate", ">=", "2017-10-01"));
//Return up to 5, 1 per page
defects.setPageSize(1);
defects.setLimit(10);
QueryResponse queryResponse = restpoint.query(defects); //here i am getting above exception
//following code is printing the JSON data
if (queryResponse.wasSuccessful()) {
System.out.println(String.format("\nTotal results: %d", queryResponse.getTotalResultCount()));
for (JsonElement result : queryResponse.getResults()) {
JsonObject defect = result.getAsJsonObject();
JsonObject project = defect.getAsJsonObject("Project");
JsonObject itr = defect.getAsJsonObject("Iteration");
JsonObject def = defect.getAsJsonObject("Defect");
//System.out.println(defect.toString());
System.out.println(String.format("User Story ID: %-10s \nName Of Story: %-30s: \nOwner: %-10s \nProject: %-15s \nStatus: %s",
defect.get("FormattedID").getAsString(),
defect.get("Name").getAsString(),
defect.get("Owner").getAsJsonObject().getAsJsonObject().get("_refObjectName"),
project.get("Name").getAsString(),
defect.get("ScheduleState").getAsString()
));
System.out.println();System.out.println();
}
} else {
System.err.println("The following errors occurred: ");
for (String err : queryResponse.getErrors()) {
System.err.println("\t" + err);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
restpoint.close(); //closing rally Api
} catch (IOException e) {
e.printStackTrace();
}
}
}
# 1 楼答案
请看这篇类似的文章peer not authenticated - Rally javatoolkit error
特别是海报中提到添加代理配置可以解决问题的部分
希望这能有所帮助