Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 2.97 KB

Requisicoes.md

File metadata and controls

60 lines (47 loc) · 2.97 KB

Requisições HTTP

HTTP é um protocolo utilizado para realizar a troca de informações entre cliente e servidor, essas informações podem ser um JSON, página web, arquivos, etc. É como se você enviasse uma mensagem para alguém e ela respondesse de volta.

Um exemplo simples seria a forma que você acessou esse repositório:

  • Utilizou o navegador para acessar a página que se encontra no repositório;
  • O navegador(cliente) fez a requisição para o servidor do GitHub;
  • O servidor responde a requisição com .html, imagens, .css e outras informações necessárias para exibir a página.

Com isso, diversas linguagens de programação possuem métodos para fazer essas requisições. Em Java não seria diferente, podemos fazer essas requisições usando as classes nativas HttpURLConnection e HttpClient(11+).

Exemplos

Link da documentação

RequestJava.java

public static void fazerRequisicao(String urlPath) throws IOException {
    URL url = new URL(urlPath);
    //Instancia um objeto URL e insere a URL
    HttpURLConnection conexao = (HttpURLConnection) url.openConnection();
    //Cria uma variável HttpURLConnection que será responsável por fazer a requisição HTTP
    conexao.setRequestMethod("GET"); //Seleciona qual o tipo do método a ser utilizado
    
    conexao.connect(); //Inicia a requisição
    imprimirResposta(conexao); //Função para imprimir a resposta da requisição
}

Java 11+

Embora as implementações sejam semelhantes, a API do HttpClient é moderna e muito mais completa que o exemplo apresenta. Link da documentação e exemplos e usos do OpenJDK (1, 2)

RequestJava11.java

public static void fazerRequisicao(String url) throws URISyntaxException, IOException, InterruptedException {
    HttpClient httpClient = HttpClient.newHttpClient();
    //Cria um HttpClient que vai ser responsável por fazer a requisição
    HttpRequest requisicao = HttpRequest.newBuilder()
            .uri(new URI(url))
            .GET()
            .build();
    /*
    - Cria um HttpRequest que vai ser responsável por formular como a requisição será feita
    - Informa a URI e qual método será utilizado(nesse caso, o GET)
    */

    HttpResponse<String> resposta = httpClient.send(requisicao, HttpResponse.BodyHandlers.ofString());
    /*
    Inicia a requisição com as instruções do HttpRequest e
    informa que o corpo da resposta deve ser String(há outros).
    */
    imprimirResposta(resposta);
}

Observações

Os códigos completos das implementações podem ser encontrados aqui.