Conversor de Curl para Java

Converta comandos curl para código Java - Gere código Java HttpClient pronto para uso para requisições de API

Aviso de Privacidade: Esta ferramenta profissional fornece conversão segura para código Java com proteção de privacidade de nível empresarial. Não armazenamos nenhum dado que você envie, garantindo confidencialidade completa para seu trabalho de desenvolvimento de API.

Gerador de Código Java HttpClient

// Java HttpClient code will appear here
// Example:
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        HttpClient client = HttpClient.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .connectTimeout(Duration.ofSeconds(10))
                .build();
                
        String jsonBody = "{\"name\": \"test\"}";
        
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/data"))
                .header("Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();
                
        HttpResponse response = client.send(request, 
                HttpResponse.BodyHandlers.ofString());
                
        System.out.println(response.statusCode());
        System.out.println(response.body());
    }
}

Comandos curl Comuns para Teste de API Java

Aqui estão alguns comandos curl comuns que você pode converter para código Java:

Exemplos Java HttpClient

A biblioteca HttpClient do Java (introduzida no Java 11) é uma maneira poderosa e moderna de fazer requisições HTTP. Aqui estão alguns padrões Java HttpClient comuns:

Upload de Arquivo com Java HttpClient

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.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileUploadExample {
    public static void main(String[] args) throws IOException, InterruptedException {
        HttpClient client = HttpClient.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .build();
                
        Path path = Paths.get("document.pdf");
        String boundary = "----WebKitFormBoundary" + System.currentTimeMillis();
        String contentType = "multipart/form-data; boundary=" + boundary;
        
        // Create multipart form data
        String data = "--" + boundary + "\r\n" +
                "Content-Disposition: form-data; name=\"file\"; filename=\"" + path.getFileName() + "\"\r\n" +
                "Content-Type: application/pdf\r\n\r\n";
                
        byte[] fileData = Files.readAllBytes(path);
        byte[] requestBody = new byte[data.getBytes().length + fileData.length + ("\r\n--" + boundary + "--\r\n").getBytes().length];
        
        System.arraycopy(data.getBytes(), 0, requestBody, 0, data.getBytes().length);
        System.arraycopy(fileData, 0, requestBody, data.getBytes().length, fileData.length);
        System.arraycopy(("\r\n--" + boundary + "--\r\n").getBytes(), 0, requestBody, 
                data.getBytes().length + fileData.length, ("\r\n--" + boundary + "--\r\n").getBytes().length);
        
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/upload"))
                .header("Content-Type", contentType)
                .header("Authorization", "Bearer YOUR_TOKEN_HERE")
                .POST(HttpRequest.BodyPublishers.ofByteArray(requestBody))
                .build();
                
        HttpResponse response = client.send(request, 
                HttpResponse.BodyHandlers.ofString());
                
        System.out.println(response.body());
    }
}

Java HttpClient com Timeout e Tratamento de Erros

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.time.Duration;

public class ErrorHandlingExample {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .connectTimeout(Duration.ofSeconds(5))
                .build();
                
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/data"))
                .timeout(Duration.ofSeconds(5))
                .GET()
                .build();
                
        try {
            HttpResponse response = client.send(request, 
                    HttpResponse.BodyHandlers.ofString());
                    
            int statusCode = response.statusCode();
            if (statusCode >= 200 && statusCode < 300) {
                System.out.println("Success: " + response.body());
            } else {
                System.out.println("Error: " + statusCode + " - " + response.body());
            }
        } catch (IOException e) {
            System.out.println("Connection error: " + e.getMessage());
        } catch (InterruptedException e) {
            System.out.println("Request interrupted: " + e.getMessage());
            Thread.currentThread().interrupt();
        } catch (Exception e) {
            System.out.println("Error making request: " + e.getMessage());
        }
    }
}

Como Usar o Conversor Java HttpClientr

1. Uso Básico

Copie seu comando curl → Cole na caixa de entrada → Obtenha código Java HttpClient convertido

2. Recursos Java HttpClient

  • HTTP methods (GET, POST, PUT, DELETE, etc.)
  • Request headers in Java format
  • JSON and form data handling
  • Basic and token authentication
  • SSL verification options
  • Session handling with Java HttpClient

3. Uso Avançado de Java HttpClient

Nosso conversor suporta comandos curl complexos e os traduz para código Java limpo e eficiente usando a biblioteca HttpClient

4. Convertendo Opções curl para Java

Nossa ferramenta lida com estas opções curl comuns e as converte para código Java HttpClient apropriado:

  • -X, --request: Sets the HTTP method (GET, POST, PUT, etc.)
  • -H, --header: Adds HTTP headers to the request
  • -d, --data: Sends data in the request body
  • --data-binary: Sends binary data in the request body
  • -u, --user: Adds basic authentication
  • -k, --insecure: Disables SSL certificate verification
  • --connect-timeout: Sets connection timeout

Perguntas Frequentes sobre Java HttpClient

P: Qual versão Java é necessária para o código gerado?

R: O código Java HttpClient gerado requer Java 11 ou superior. Para versões mais antigas do Java, considere usar clientes HTTP alternativos como Apache HttpClient ou OkHttp.

P: O código Java inclui verificação de erros?

R: O código básico gerado inclui blocos try/catch para IOException e InterruptedException. Para código de produção, você pode querer adicionar tratamento de erros mais específico para diferentes códigos de status HTTP.

P: Como posso processar a resposta em Java?

R: A biblioteca HttpClient fornece vários BodyHandlers para processar respostas. Use HttpResponse.BodyHandlers.ofString() para respostas de texto, ofInputStream() para dados binários ou ofByteArray() para bytes brutos.

P: Preciso instalar alguma biblioteca para usar o código gerado?

R: Nenhuma biblioteca externa é necessária. O HttpClient faz parte da biblioteca padrão do Java desde o Java 11. Para processamento JSON, você pode querer adicionar uma biblioteca como Jackson ou Gson.

P: Como converter um comando curl com upload de arquivo para Java?

R: Para uploads de arquivo em Java, você precisará usar dados de formulário multipart com HttpClient. Nosso conversor lida com comandos curl com opções -F ou --form e gera o código Java apropriado.

P: Como lidar com cookies em Java HttpClient?

R: O HttpClient do Java fornece manipulação de cookies através do método HttpClient.Builder.cookieHandler(). Quando você converte comandos curl que incluem manipulação de cookies (usando -b ou --cookie), nossa ferramenta gera código Java que gerencia cookies adequadamente.

P: Qual é a diferença entre usar curl e Java HttpClient para teste de API?

R: Enquanto o curl é excelente para teste rápido de API por linha de comando, o Java HttpClient fornece uma abordagem programática que se integra com suas aplicações Java. Converter curl para Java ajuda a preencher a lacuna entre teste e implementação no desenvolvimento Java.

Referência de Comandos Curl para Teste de API Java

Entender comandos curl é essencial para teste eficaz de API com Java. Aqui está uma referência rápida de opções curl comuns que nosso conversor suporta:

Sintaxe curl Básica

curl [options] [URL]

Opções curl Comuns

Convertendo Comandos curl Complexos

Nosso conversor Java lida com comandos curl complexos incluindo múltiplos cabeçalhos, autenticação, payloads de dados e várias opções. Simplesmente cole seu comando curl e obtenha código Java limpo e moderno usando a biblioteca HttpClient.

Melhores Práticas Java HttpClient

Ao trabalhar com a biblioteca Java HttpClient, siga estas melhores práticas para interações de API eficientes e seguras:

1. Reutilize Instâncias HttpClient

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class HttpClientReuseExample {
    // Create a single HttpClient instance for the application
    private static final HttpClient httpClient = HttpClient.newBuilder()
            .version(HttpClient.Version.HTTP_2)
            .build();
            
    public static void main(String[] args) throws Exception {
        // First request
        HttpRequest request1 = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/users"))
                .GET()
                .build();
        HttpResponse response1 = httpClient.send(request1, 
                HttpResponse.BodyHandlers.ofString());
                
        // Second request (uses same client)
        HttpRequest request2 = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/products"))
                .GET()
                .build();
        HttpResponse response2 = httpClient.send(request2, 
                HttpResponse.BodyHandlers.ofString());
    }
}

2. Implemente Tratamento de Erros Adequado

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.net.http.HttpTimeoutException;

public class ErrorHandlingBestPractice {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/data"))
                .GET()
                .build();
                
        try {
            HttpResponse response = client.send(request, 
                    HttpResponse.BodyHandlers.ofString());
                    
            switch (response.statusCode()) {
                case 200:
                case 201:
                    System.out.println("Success: " + response.body());
                    break;
                case 400:
                    System.out.println("Bad request: " + response.body());
                    break;
                case 401:
                case 403:
                    System.out.println("Authentication error: " + response.statusCode());
                    break;
                case 404:
                    System.out.println("Resource not found");
                    break;
                case 500:
                case 503:
                    System.out.println("Server error: " + response.statusCode());
                    break;
                default:
                    System.out.println("Unexpected status: " + response.statusCode());
            }
        } catch (HttpTimeoutException e) {
            System.out.println("Request timed out: " + e.getMessage());
        } catch (IOException e) {
            System.out.println("Network error: " + e.getMessage());
        } catch (InterruptedException e) {
            System.out.println("Request interrupted");
            Thread.currentThread().interrupt();
        }
    }
}

3. Use Requisições Assíncronas para Melhor Desempenho

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.concurrent.CompletableFuture;

public class AsyncRequestExample {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newHttpClient();
        
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.example.com/data"))
                .GET()
                .build();
                
        CompletableFuture> futureResponse = 
                client.sendAsync(request, HttpResponse.BodyHandlers.ofString());
                
        futureResponse
            .thenApply(HttpResponse::body)
            .thenAccept(System.out::println)
            .exceptionally(e -> {
                System.err.println("Error: " + e.getMessage());
                return null;
            });
            
        // Do other work while the request is processing
        System.out.println("Request sent asynchronously...");
        
        // Wait for the request to complete if needed
        futureResponse.join();
    }
}