Как избавиться от ошибки "unable to find valid certification path to requested target" при отправке http запроса? httpclietn
Пытаюсь написать программу, которая отправляет http(s) запросы на определенный url с определенным методом. При попытке отправить запрос на хост yandex.ru - все работает отлично. Если меняю хост, например, на pikabu.ru - вылетает длинная ошибка, часть её: "javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" Из-за чего так происходит?
Код:
package MyAutoCheck;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.IOException;
import java.io.InputStream;
public class HTTP_REQ {
public void sendReq(String url) throws IOException {
try (
CloseableHttpClient client = HttpClients.createDefault();
CloseableHttpResponse response = client.execute(new HttpGet(url));
) {
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream data = entity.getContent();
System.out.println("Date: " + data);
}
System.out.println();
for (Header header: response.getAllHeaders()) {
System.out.println(header.getName() + " : " + header.getValue());
}
System.out.println();
System.out.println("Protocol version: " + response.getProtocolVersion());
System.out.println("Status code: " + response.getStatusLine().getStatusCode());
System.out.println("Response phrase: " + response.getStatusLine().getReasonPhrase());
System.out.println("Status line: " + response.getStatusLine().toString());
} catch (Throwable cause) {
cause.printStackTrace();
}
}
}