Consegui fazer a interação da API do Google Books com o programinha Java. Mas notei que a pesquisa fazia o programa crashar, se o nome do título do livro tivesse mais de uma palavra. Observando o que poderia ser, notei que a pesquisa na API daria certo se ao invés de 'espaços' separando as palavras, tivessem '+' na query da URL. Decidi, então, fazer a substituição dos caracteres 'espaços' por '+' no próprio corpo do programa e, já aproveitando, joguei tudo para o LowerCase, caso o usuário digite com letras maiúsculas.
Abaixo compartilho meu código:
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;
public class Biblioteca {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner leitor = new Scanner(System.in);
System.out.println("Digite um livro: ");
var pesquisa = leitor.nextLine();
String pesquisaFormatada = pesquisa.replace(' ', '+').toLowerCase();
String endereco = "https://www.googleapis.com/books/v1/volumes?q=" + pesquisaFormatada + "&callback=handleResponse";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(endereco))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Implementei a String pesquisaFormatada, na linha 13, e ela faz a substituição, utilizando o método Replace do Java, dos 'espaços' por '+' e, na sequência, joga tudo para letras minúsculas, usando o toLowerCase(). E, só então, usa a pesquisaFormatada na query da URL para fazer a busca na API do Google Books.