Как вернуть полное тело из HttpResponse?JAVA

Программисты JAVA общаются здесь
Anonymous
Как вернуть полное тело из HttpResponse?

Сообщение Anonymous »

Код: Выделить всё

package org.degoogle.Networking;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.Optional;

public class HTTPComms {

private static final HttpClient HTTP_CLIENT = HttpClient.newBuilder().connectTimeout(Duration.of(10, ChronoUnit.SECONDS)).build();

// if 404 the url is not found else return the body
public Optional urlBodyGetter(String url) {
try{

HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).timeout(Duration.of(10, ChronoUnit.SECONDS)).GET().build();
HttpResponse response = HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
if(response.statusCode() == 200){
return Optional.of(response.body());
} else{
return Optional.empty();
}
}

catch (Exception e) {

if(e instanceof InterruptedException)
{
Thread.currentThread().interrupt();
//Log for interrupt

}
else if(e instanceof IllegalArgumentException) {
//Log for URI
}
else{
//for IOBlock
}

return Optional.empty();

}
}
}
Выход:

Код: Выделить всё







Knights Time
  
  






код работает для некоторых веб-сайтов, а некоторые веб-сайты просто возвращают ``. Это хорошая практика, или нам следует использовать другой подход, если да, пожалуйста, дайте ссылку на ресурс, чтобы я мог узнать об этом. Кстати, идея состоит в том, чтобы создать веб-сканер

Вернуться в «JAVA»