將 curl 轉換為 Go

使用標準 net/http 套件將 curl 指令轉換為 Go 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料將保持私密。如果您偏好高階語言,請嘗試我們的 curl 轉 Python 轉換器。若需系統程式設計,請參閱 curl 轉 Rust。下方提供即插即用的 Go 範例。

如何從瀏覽器複製 curl

  1. 1

    開啟開發者工具 (DevTools)

    按下 F12Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。

  2. 2

    前往網路 (Network) 分頁

    點擊 Network 分頁,並執行觸發 HTTP 請求的操作。

  3. 3

    複製為 cURL

    右鍵點擊該請求 → CopyCopy as cURL。然後將其貼在上方。

常見問題解答

什麼是 Go net/http?

Go 的 net/http 是標準函式庫中內建的生產級 HTTP 客戶端和伺服器。它不需要外部依賴,預設支援 HTTP/2,並開箱即用地提供連線池、逾時和 TLS 設定。它是 curl2code 用於 Go 的唯一函式庫 — 不需要第三方套件。

net/http vs 第三方 Go HTTP 客戶端 — 應該使用哪一個?

Go 的 net/http 對於大多數使用案例來說已經足夠強大 — 與許多語言不同,其標準函式庫已具備生產就緒能力。像 resty 這樣的第三方選項增加了便利性(自動重試、鏈結呼叫),但會增加依賴。關於類似的「內建功能齊全」方法,請參閱我們的 curl 轉 Rust 轉換器 (reqwest) 或 curl 轉 Python

如何在 Go 中處理身份驗證?

使用 Authorization 設定 req.Header.Set("Authorization", "Bearer "+token) 標頭。對於基本驗證,使用 req.SetBasicAuth(user, pass),它會自動設定標頭。curl2code 會偵測 -u-H 'Authorization: ...' 並生成正確的 Go 程式碼。

如何在 Go 中發送多部分表單資料?

使用 mime/multipart 套件:使用 multipart.NewWriter(body) 建立寫入器,使用 CreateFormField 加入欄位,並使用 CreateFormFile 加入檔案。將 Content-Type 設定為 writer.FormDataContentType()。curl2code 會處理所有 -F 旗標轉換。

如何在 Go 中處理 HTTP 錯誤?

Go 使用顯式錯誤回傳:在 if err != nil 之後務必檢查 http.Do(req)。然後檢查 resp.StatusCode 以確認 HTTP 層級的錯誤。務必使用 defer resp.Body.Close() 以防止資源洩漏。這種顯式錯誤處理是 Go 的核心模式 — 沒有異常,沒有 try/catch。

如何在 Go 中發送併發 HTTP 請求?

搭配 sync.WaitGroup 或通道(channels)使用 goroutines。使用 go func() { ... }() 在 goroutine 中啟動每個請求。對於受限的併發,請使用信號量(semaphore)通道。Go 的 goroutines 非常輕量 — 您可以輕鬆處理數千個併發請求。關於類似的併發模式,請參閱 curl 轉 Rust

如何在 Go HTTP 客戶端中設定逾時?

設定 client.Timeout 作為整體請求的截止時間。如需精細控制,請使用 context.WithTimeoutcontext.WithDeadline 並將 context 傳遞給 http.NewRequestWithContext。curl 的 --connect-timeout 對應到 Transport.DialContext 逾時,--max-time 對應到 client.Timeout

如何在 Go 中設定代理伺服器?

在自定義的 Transport.Proxy 上將 http.ProxyURL(proxyUrl) 設定為 http.Transport。Go 預設也透過 HTTP_PROXY 支援 HTTPS_PROXYhttp.ProxyFromEnvironment 環境變數。curl2code 會將 -x--proxy 旗標轉換為適當的 Go 代理設定。

如何在 Go 中發送帶有 JSON 主體的 POST 請求?

使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL 的 curl POST 指令轉換為 Go。生成的程式碼使用 http.Post(url, "application/json", bytes.NewBuffer(jsonData))。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 net/http 程式碼中設置適當的 Content-Type 標頭。

如何在 Go 中添加 Bearer 權杖授權?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 net/http 程式碼:req.Header.Set("Authorization", "Bearer YOUR_TOKEN")。curl2code 會從 -H "Authorization: Bearer ..."--oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass

如何在 Go 中設置 Content-Type 標頭?

curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 net/http 程式碼:req.Header.Set("Content-Type", "application/json")。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 net/http API。

實用連結

curl 指南

將 curl 轉換為其他語言