cURL → Java
Java HTTP Client Generator

cURL-zu-Java-Konverter Entwicklerhandbuch (Java 11+ HttpClient, OkHttp & Spring WebClient)

Konvertieren Sie cURL-Befehle in produktionsreife Java-HTTP-Anfragen mit nativem java.net.http.HttpClient, OkHttp3 oder Spring WebClient.

100% Client-Side Privacy
Zero Server Transmission
Presets:
cURL-Befehlseingabe
// Java 11+ Native java.net.http.HttpClient
// Built into JDK 11, 17, 21+ standard library — zero external dependencies required!

package com.example.client;

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 HttpClientExample {

    public static void main(String[] args) {
    try {
        // 1. Configure and build HttpClient
        HttpClient client = HttpClient.newBuilder()
            .version(HttpClient.Version.HTTP_2)
            .connectTimeout(Duration.ofSeconds(30))
            .build();

        // 2. Prepare request payload
        String requestBody = "{\"title\": \"Bug in auth session\", \"body\": \"Need to verify token expiration handling\", \"labels\": [\"bug\", \"priority\"]}";

        // 3. Build HttpRequest
        HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
            .uri(URI.create("https://api.github.com/repos/octocat/Hello-World/issues"))
            .timeout(Duration.ofSeconds(30))
            .header("Accept", "application/vnd.github+json")
            .header("Authorization", "Bearer gho_16C7e42F292c6912E7710c838347Ae178B4a")
            .header("X-GitHub-Api-Version", "2022-11-28")
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(requestBody));
        HttpRequest request = requestBuilder.build();

        // Synchronous execution
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println("Status Code: " + response.statusCode());
        System.out.println("Response Body:\n" + response.body());
    } catch (Exception e) {
        System.err.println("HTTP Client Error: " + e.getMessage());
        e.printStackTrace();
    }
    }
}
HTTP-Methode & Protokoll
POSTHTTPS
Ziel-Host & Route
https://api.github.com
0 query params
Header & Nutzlast
4 headers • BEARER Auth
JSON Payload (115 B)

100% clientseitige Transpilierung

cURL-Syntaxparsing, Argument-Tokenisierung und Java-Quellsynthese laufen vollständig im lokalen Browserspeicher ohne Server-Roundtrips.

Modernes Java 11+ & Enterprise-Ökosystem

Transpiliert Terminal-Befehle in natives java.net.http.HttpClient, OkHttp 3/4, Spring WebClient (reaktiv), Spring RestTemplate und Apache HttpClient 5.

Vollständige Flag- & Auth-Parität

Parst Header (-H), Bearer/Basic-Anmeldedaten (-u), Timeouts (-m), SSL-Bypass-Flags (-k), Weiterleitungen (-L) und komplexe JSON-Bodys präzise in idiomatischen Java-Code.

Technische Referenz & Architektur-Leitfaden

cURL-zu-Java-Konverter Entwicklerhandbuch (Java 11+ HttpClient, OkHttp & Spring WebClient) — Referenz-Leitfaden

Konvertieren Sie cURL-Befehle in produktionsreife Java-HTTP-Anfragen mit nativem java.net.http.HttpClient, OkHttp3 oder Spring WebClient.

Wichtige Parameter & Steuerelemente

clientTargetstring

Ziel-HTTP-Bibliothek: java.net.http.HttpClient (Java 11+), Square OkHttp3 oder Spring 5/6 WebClient.

Standard: HttpClient (Java 11+)
timeoutSecondsinteger

Verbindungs- und Anforderungszeitlimit in Sekunden, das im Client-Builder konfiguriert wird.

Standard: 10
asyncModeboolean

Generiert asynchrone, nicht-blockierende Aufrufe mit CompletableFuture oder Project Reactor Mono/Flux.

Standard: false
cleanDevToolsboolean

Entfernt Browser-DevTools-Pseudo-Header (:authority, :method, :path, :scheme), um Java IllegalArgumentExceptions zu verhindern.

Standard: true

Profi-Tipps & Best Practices

HttpClient als Singleton-Instanz wiederverwenden

Erstellen Sie pro Anwendung stets eine einzige statische Instanz von HttpClient oder OkHttpClient. Die Neuerstellung pro Request führt zu unnötigen Thread-Pools, Verbindungslagern und SSL-Handshakes, was Socket-Erschöpfung und hohe Speichernutzung verursacht.

UTF-8 in BodyPublishers explizit definieren

Verwenden Sie bei der Übertragung von Text- oder JSON-Nutzlasten mit Java 11+ HttpClient stets StandardCharsets.UTF_8: HttpRequest.BodyPublishers.ofString(jsonString, StandardCharsets.UTF_8). Das Auslassen führt zum Standard-Dateisystem-Encoding und potenziellen Datenbeschädigungen bei Sonderzeichen.

sendAsync() mit CompletableFuture für hohen Durchsatz nutzen

Verwenden Sie in I/O-intensiven Microservices client.sendAsync(request, HttpResponse.BodyHandlers.ofString()) anstelle des blockierenden send(). Durch die Verkettung reaktiver Phasen mit thenApply() bleiben Worker-Threads für parallele Lasten frei.

Häufige Fallstricke & Fehlerbehebung

java.lang.IllegalArgumentException: restricted header name or invalid colon character

Java 11+ HttpClient sperrt Pseudo-Header (:authority usw.) sowie systemreservierte Header (Connection, Content-Length, Host). Aktivieren Sie die Option 'DevTools-Header bereinigen', um diese vor der Builder-Ausführung zu entfernen.

Anfrage blockiert unbegrenzt ohne Timeout-Ausnahme

Java 11+ HttpClient verfügt über kein standardmäßiges Anforderungs-Timeout. Konfigurieren Sie Duration.ofSeconds(...) explizit sowohl bei HttpClient.newBuilder().connectTimeout(...) als auch bei HttpRequest.newBuilder().timeout(...).

HTTP 415 Unsupported Media Type wird vom Zielserver gemeldet

Stellen Sie sicher, dass im Request-Builder bei JSON-Nutzlasten explizit der Header header("Content-Type", "application/json; charset=utf-8") gesetzt ist.

Häufig gestellte Fragen (FAQ)

Wann sollte man Java 11+ HttpClient gegenüber OkHttp oder Spring WebClient bevorzugen?▼

Nutzen Sie Java 11+ java.net.http.HttpClient für moderne Java-Microservices ohne Drittanbieter-Bibliotheken. Wählen Sie OkHttp3 für Android-Projekte oder wenn anspruchsvolles Interceptor-Routing und Connection-Pool-Tuning erforderlich sind. Verwenden Sie Spring WebClient in reaktiven Spring Boot 2/3-Architekturen mit Project Reactor (Mono/Flux).

Wie wird cURL Basic Auth (-u user:pass) in Java übersetzt?▼

Im Java 11+ HttpClient kann dies über einen Authenticator am Client oder direkt per header("Authorization", "Basic " + Base64.getEncoder().encodeToString("user:pass".getBytes(StandardCharsets.UTF_8))) erfolgen. In OkHttp steht Credentials.basic("user", "pass") zur Verfügung.

Wie werden Multipart-Dateiuploads (-F file=@path) in Java umgesetzt?▼

OkHttp unterstützt multipart nativ über MultipartBody.Builder. Für Java 11+ HttpClient wird ein RFC-konformer Multipart-Publisher-Helfer generiert, der Boundary-Begrenzer mit HttpRequest.BodyPublishers.ofFile(path) kombiniert.

Werden vertrauliche cURL-Daten oder Token an einen Server übermittelt?▼

Nein. Die Analyse, Normalisierung und Java-Codegenerierung erfolgt zu 100 % lokal in der Sandbox Ihres Webbrowsers. Es findet keinerlei Serverübertragung oder Protokollierung statt.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →