当CURL命令通过时,HttpClient java.net.UnknownHostException异常

当CURL命令通过时,HttpClient java.net.UnknownHostException异常,java,apache-httpclient-4.x,Java,Apache Httpclient 4.x,我正在尝试使用httpclient打电话给Jenkins以获取工作列表 当我运行我的代码时,我得到一个UnknownHostException 我尝试使用curl发出相同的请求,并得到了结果。我不知道该如何解释这一点 void nwe() throws ClientProtocolException, IOException { HttpHost target = new HttpHost("https://<JENKINS_URL>/api"); Credentia

我正在尝试使用httpclient打电话给Jenkins以获取工作列表

当我运行我的代码时,我得到一个
UnknownHostException

我尝试使用
curl
发出相同的请求,并得到了结果。我不知道该如何解释这一点

void nwe() throws ClientProtocolException, IOException {
    HttpHost target = new HttpHost("https://<JENKINS_URL>/api");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(target.getHostName(), target.getPort()),
            new UsernamePasswordCredentials("username", "password"));
    CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
    HttpGet httpGet = new HttpGet("/json");
    httpGet.setHeader("Content-type", "application/json");
    BasicScheme basicAuth = new BasicScheme();
    HttpClientContext localContext = HttpClientContext.create();
    CloseableHttpResponse response1 = httpclient.execute(target, httpGet, localContext);
    System.out.println(response1.getStatusLine());

}
void nwe()抛出ClientProtocolException,IOException{
HttpHost目标=新HttpHost(“https:///api");
CredentialsProvider credsProvider=新的BasicCredentialsProvider();
credsProvider.setCredentials(
新的AuthScope(target.getHostName(),target.getPort()),
新用户名密码凭据(“用户名”、“密码”);
CloseableHttpClient httpclient=HttpClients.custom().setDefaultCredentialsProvider(CredProvider.build();
HttpGet-HttpGet=newhttpget(“/json”);
setHeader(“内容类型”、“应用程序/json”);
碱性血红素碱性血红素=新碱性血红素();
HttpClientContext localContext=HttpClientContext.create();
CloseableHttpResponse response1=httpclient.execute(目标、httpGet、本地上下文);
System.out.println(response1.getStatusLine());
}
同一URL上的CURL命令提供了预期的输出

谢谢, Amar

阅读:

参数:主机名-主机名(IP或DNS名称)

因此,您应该使用just(省略协议和上下文):

HttpHost目标=新的HttpHost(“”);
然后是
HttpGet
/api/json
部分


干杯,

没什么要说的,但是使用
curl-v
检查您是否通过代理服务器连接。确保您使用的是完全限定的主机名。谢谢您,先生!!!!这导致主机名验证失败的问题。我处理了它,现在它工作了……我接受了这个答案
HttpHost target = new HttpHost( "<JENKINS_URL>" );