curl to Go 変換ツール

curlコマンドをGoのnet/httpコードへ、ブラウザー内で即座に変換します。コマンドはお使いのデバイスに留まります。

あなたのcurlコマンドはブラウザー内でローカルにGoへ変換され、アップロードされることはありません。ただし、本番環境の実際のトークンや認証情報をどのツールにも貼り付けないようにしてください。

JavaScript版も必要ですか?cURL to Fetchをお試しください。

curl to Go 変換ツール について

このcurl to go変換ツールは、curlコマンドを標準のnet/httpパッケージを使った慣用的なGoに書き換えるため、API呼び出しを手作業で組み立てずにGoのサービスへそのまま入れられます。curl to golangツールとして、-X、-H、-d、--data-raw、--json、-u、-b、-G といったフラグを読み取り、適切なメソッドで http.NewRequest を構築し、各ヘッダーを req.Header.Set で設定し、ボディを strings.NewReader で包みます。生成された main() は io.ReadAll でレスポンスを読み、ステータスを表示し、go run でコンパイルできる状態です。curlのテストをバックエンドのハンドラー・CLI・ワーカーへ移植するときに使ってください。変換はブラウザー内で行われるため、コマンドとその中のトークンはお使いのデバイス上でローカルに処理され、外に出ることはありません。

機能

curl to Go 変換ツール の使い方

  1. curlコマンドをcURLコマンドボックスに貼り付けます。
  2. 出力パネルで生成されたGoのnet/httpプログラムを読みます。
  3. 調整またはスキップされたフラグがないか警告バナーを確認します。
  4. 「コピー」をクリックするか、ファイルを request.go としてダウンロードし go run で実行します。

入力

curl https://api.example.com/ping

出力

package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    url := "https://api.example.com/ping"
    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        panic(err)
    }

    res, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer res.Body.Close()

    data, _ := io.ReadAll(res.Body)
    fmt.Println(res.Status)
    fmt.Println(string(data))
}

ボディのないGETは http.NewRequest に nil を渡し、strings のインポートを省きます。

よくあるエラーとトラブルシューティング

よくある質問

curlコマンドをGoに変換するには?
curlコマンドを入力ボックスに貼り付けると、変換ツールが右側に完全なGoのnet/httpプログラムを表示します。コピーまたは request.go としてダウンロードできます。
生成されたGoのコードは標準ライブラリを使いますか?
はい。標準ライブラリの net/http・io・fmt・strings のみを使うため、実行前に go get するものは何もありません。
リクエストボディはGoでどう表現されますか?
ボディは strings.NewReader で包まれて http.NewRequest に渡され、strings のインポートはボディがあるときだけ自動的に追加されます。
出力を go run でそのまま実行できますか?
はい。変換ツールは main() 関数・基本的なエラー処理・レスポンス表示を備えた完全な package main を出力するため、go run request.go がそのまま動きます。
Goに変換するとき、私のcurlコマンドはサーバーに送信されますか?
いいえ。curl to goの変換は完全にブラウザー内で実行されるため、コマンドやその中の秘密情報はお使いのデバイスに留まります。

関連ツール

すべての ArrayKit ツール