Я пытаюсь подключить API, который находится в Интернете, в приложении Java.Однако я получаю исключение UnknownHostException
.
Если я использую тот же API с помощью Postman, я получаю результаты правильно.
Я пробовал несколько вещей, которые я нашел в интернете, например, указание прокси при выполнении приложения Java:
-Dhttp.proxyHost=<some_proxy_url> -Dhttp.proxyPort=80 -Dhttps.proxyHost=<some_proxy_url> -Dhttps.proxyPort=80 -Dhttps.proxySet=true -Dhttp.proxySet=true
но это мне совсем не помогло.
Это код, который я должен выполнить для запроса:
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
HttpRequestBase request = new HttpPost(
"https://some-host.com/some-api");
HttpResponse response = httpClient.execute(request);
System.out.println(response.getStatusLine().getStatusCode());
} catch (IOException e) {
e.printStackTrace();
}
Это полная трассировка стекаисключение:
java.net.UnknownHostException: some-host.com: nodename nor servname provided, or not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:112)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:394)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at App.connect(App.java:25)
at App.main(App.java:15)
Я заметил, что у меня проблемы с любым хостом, который находится за пределами моей машины.Я даже пытался с хостом www.google.com
, и получаю то же исключение.
Однако, если я использую API моего локального хоста, у меня не возникает никаких проблем.
Чего мне не хватает?