將 curl 轉換為 Java
使用現代的 HttpClient API 將 curl 指令轉換為 Java 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料絕不會離開您的裝置。若需 Kotlin 開發,請嘗試我們的 curl 轉 Kotlin 轉換器。若需 C# (.NET),請參閱 curl 轉 C#。下方提供即插即用的 Java 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 Java HttpClient?
Java 的 HttpClient(於 Java 11 引入)是一個現代的內建 HTTP 客戶端,取代了舊有的 HttpURLConnection。它支援 HTTP/2、非同步請求、WebSocket 和流暢的建構器(fluent builder)API。不需要外部依賴。curl2code 也支援 OkHttp、Jsoup 和 HttpURLConnection 作為替代方案。
HttpClient vs OkHttp vs HttpURLConnection — 應該使用哪一個?
HttpClient (Java 11+) 是現代標準 — 建議在新專案中使用。OkHttp 成熟且廣泛用於 Android,具備攔截器和連線池。HttpURLConnection 適用於所有 Java 版本,但程式碼較冗長。對於 Android/Kotlin,請參閱我們的 curl 轉 Kotlin 轉換器。關於類似的現代方法,請嘗試 curl 轉 C#。
如何在 Java 中處理身份驗證?
設定 Authorization 標頭:request.header("Authorization", "Bearer " + token)。對於基本驗證,使用 Base64.getEncoder().encodeToString((user + ":" + pass).getBytes()) 進行編碼。HttpClient 也支援 Authenticator 用於自動認證處理。
如何在 Java 中發送多部分表單資料?
Java 11+ HttpClient 需要手動建構帶有邊界字串的多部分 body。使用 HttpRequest.BodyPublishers.ofString() 搭配手動格式化的部分。OkHttp 使用 MultipartBody.Builder 簡化了此過程。curl2code 會為您選擇的 Java 函式庫生成適當的多部分程式碼。
如何在 Java 中處理 HTTP 錯誤?
使用 HttpClient 時,在每次請求後檢查 response.statusCode() — 它不會在 HTTP 錯誤時拋出異常。將呼叫封裝在 try/catch 中以處理 IOException(網路)和 InterruptedException(非同步)。OkHttp 在失敗時會拋出 IOException,並提供 response.isSuccessful() 用於狀態檢查。
如何在 Java 中發送非同步 HTTP 請求?
HttpClient 提供回傳 sendAsync() 的 CompletableFuture:client.sendAsync(request, BodyHandlers.ofString()).thenApply(HttpResponse::body)。可使用 thenAccept()、thenCompose() 進行鏈結,或使用 CompletableFuture.allOf() 進行平行請求。OkHttp 使用帶有 Callback 介面的 enqueue()。
如何在 Java HttpClient 中設定逾時?
在客戶端上設定:HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build()。針對單個請求:request.timeout(Duration.ofSeconds(30))。OkHttp 使用 OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS)。
如何在 Java 中設定代理伺服器?
使用 HttpClient:HttpClient.newBuilder().proxy(ProxySelector.of(new InetSocketAddress("proxy", 8080))).build()。OkHttp 使用 Proxy 類別:new OkHttpClient.Builder().proxy(new Proxy(Proxy.Type.HTTP, address))。Java 也支援 -Dhttp.proxyHost JVM 旗標。curl2code 會自動轉換 -x 旗標。
如何在 Java 中發送帶有 JSON 主體的 POST 請求?
使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL 的 curl POST 指令轉換為 Java。生成的程式碼使用 HttpRequest.newBuilder().POST(BodyPublishers.ofString(jsonString)).build()。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 HttpClient 程式碼中設置適當的 Content-Type 標頭。
如何在 Java 中添加 Bearer 權杖授權?
將 curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 HttpClient 程式碼:.header("Authorization", "Bearer YOUR_TOKEN")。curl2code 會從 -H "Authorization: Bearer ..." 和 --oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass。
如何在 Java 中設置 Content-Type 標頭?
curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 HttpClient 程式碼:.header("Content-Type", "application/json")。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 HttpClient API。