Ao tentar o filme "Top Gun" percebi que voltou um erro, devido ao espaçamento da String, busquei algumas soluções.
De início tratei da seguinte forma:
String busca = sc.nextLine().trim().toLowerCase().replace(" ", "+");
Mas fazendo algumas pesquisas descobri que existe uma classe dentro de java.net que é a URLEncoder, com o método encode. No final meu código ficou assim:
package br.com.alura.screenmatch.principal;
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class PrincipalComBusca {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner sc = new Scanner(System.in);
System.out.println("Digite o nome do filme:");
String search = sc.nextLine();
String encodedSearch = URLEncoder.encode(search, StandardCharsets.UTF_8.toString());
String dns = "https://www.omdbapi.com/?t="+encodedSearch+"&apikey=175bf8e6";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(dns))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Utilizei o inglês para treinar, por mais que não fique coerente com o nome da classe