当CURL命令通过时,HttpClient java.net.UnknownHostException异常
我正在尝试使用httpclient打电话给Jenkins以获取工作列表 当我运行我的代码时,我得到一个当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
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>" );