Mostrando postagens com marcador Java 7. Mostrar todas as postagens
Mostrando postagens com marcador Java 7. Mostrar todas as postagens

quarta-feira, 31 de maio de 2023

Como criar uma requisição POST com Java

     Neste artigo vou mostrar como fazer um POST usando Java. Este código é valido para qualquer versão, mas no Java 11 introduziram uma nova forma de fazer que você pode estar vendo nesse link: Fazendo requisições com HTTP Client do Java 11

 

     Segue aqui o código: 

 

import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class Java8Post { public static void main(String[] args) throws Exception { String url = "https://exemplo.com/requisicao"; URL obj = new URL(url); HttpURLConnection connection = (HttpURLConnection) obj.openConnection(); // Configurar a requisição como POST connection.setRequestMethod("POST"); // Adicionar cabeçalhos necessários connection.setRequestProperty("Content-Type", "application/json"); // Habilitar o envio de dados na requisição connection.setDoOutput(true); String requestBody = "{\"chave\": \"valor\"}"; // Enviar o corpo da requisição DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); outputStream.writeBytes(requestBody); outputStream.flush(); outputStream.close(); // Obter a resposta da requisição int responseCode = connection.getResponseCode(); System.out.println("Código de resposta: " + responseCode); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = reader.readLine()) != null) { response.append(inputLine); } reader.close(); System.out.println("Resposta: " + response.toString()); } }


 

     Pra esse artigo é só. 

segunda-feira, 4 de outubro de 2021

Erro Java 7 usando método split() com String vazia como delimitador

        O método split() do Java recebe como parâmetro uma String ou Regex para dividir a String em um Array de acordo com o delimitador passado. Porém, com o Java 7 (e talvez versões anteriores), quando passado uma String vazia como parâmetro ("") é criado uma posição vazia no início do Array. Nas versões 8 em diante esse problema foi corrigido. A questão é que dependendo do tratamento dado na hora do desenvolvimento, futuramente ao migrar o projeto para uma versão mais atual do Java, vai ter problema.

        

         Basicamente temos duas soluções:

 

  1. Não usar o Split() passando uma String vazia como delimitador, ao invés disso usar uma regex ou fazer um loop pegando as posições do Array.  
  2. Usar um código para atualizar o Array tirando o espaço em branco.

 

         Segue um exemplo de um código que tira o espaço extra no Java 7:

 

//Pega a String e passa para um Array.

String minhaString = "Daniel";

String[] meuArray = minhaString.split("");

       

/*

* Hack para Java 7 pq inclui uma posição vazia no inicio do array após o split na String.

* A partir da versão 8 do Java o problema não existe mais.

*/

if(meuArray[0].equals("")){

     String[] hack = new String[meuArray.length-1];

     System.arraycopy(meuArray, 1, hack, 0, hack.length);

     meuArray = hack;

}

/*Fim do hack*/

 

         Eu prefiro usar a opção 1, mas há casos em que a opção 2 pode ajudar, vai depender de cada situação.