CORS error in Java

curl doesn't enforce CORS. Fetch and Axios do. A working curl doesn't mean a working browser call. Paste your curl command to see what Java (OkHttp) would send and compare against the working request.

Quick answer

To convert a cURL command to Java, paste it into the Toolpaper workbench below. It parses the command in your browser and emits idiomatic Java code — headers, query string, request body, authentication (Bearer, Basic, API key), and cookies are all wired up automatically. No data is uploaded; conversion is fully client-side.

Prefer a different target? See the full cURL to Java reference, or jump to the same guide in JavaScript, Node.js, or Python.

InputcURL command
1 secret
MethodGET·Headers1·Body—· Chars 73
OutputJVM · OkHttp(modern JVM)
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class Main {
  public static void main(String[] args) throws Exception {
    OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
    clientBuilder.followRedirects(false).followSslRedirects(false);
    OkHttpClient client = clientBuilder.build();
    Request.Builder rb = new Request.Builder().url("https://api.example.com/me");
    rb.method("GET", null);
    rb.header("Authorization", "Bearer YOUR_TOKEN");
    try (Response response = client.newCall(rb.build()).execute()) {
      System.out.println(response.body().string());
    }
  }
}
Inspect

Example

A representative curl command for this scenario. Paste your own above to convert an exact match.

curl input
curl https://api.example.com/me \
  -H "Authorization: Bearer YOUR_TOKEN"

Implementation notes

  • Move the call server-side, or ask the API to add your origin to Access-Control-Allow-Origin. The In-browser Runner surfaces CORS blockers explicitly.
  • Use the Explain panel to enumerate exactly which headers, cookies, and TLS flags the curl request carries.
  • The In-browser Runner is a fast way to confirm whether the failure reproduces from the browser or only from the server.

Common mistakes

  • Comparing curl and Java without capturing both actual wire requests — mitmproxy or Charles pays off here.
  • Assuming a working curl means the API is happy — client differences (redirect handling, keep-alive, HTTP/2) surface as edge cases.
  • Silencing warnings instead of fixing them — every Java client has a way to log the outgoing request; turn it on.

Common questions

Why does curl work but Java fail?
Usually a header curl adds by default is missing in Java, or vice versa. Paste the curl above to see a normalized breakdown.
Is my request sent to Toolpaper?
No. Parsing and diffing run in your browser.

More guides in Java

Java hub →

The same guide in other languages

All guides →

Full Java reference on the cURL to Java hub, or open the main converter for all 18 targets.