curl を Java に変換

モダンな HttpClient API を使用して、curl コマンドを Java コードに変換します。curl2code は WebAssembly を介してブラウザ内で完全に動作するため、データがデバイスの外に出ることはありません。Kotlin 開発については、curl to Kotlin 変換ツールをお試しください。C# (.NET) については、curl to C# をご覧ください。以下に、すぐに使える Java の例を掲載しています。

ブラウザから curl をコピーする方法

  1. 1

    デベロッパーツールを開く

    F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。

  2. 2

    ネットワークタブに移動

    ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。

  3. 3

    cURL としてコピー

    リクエストを右クリック → コピーcURL としてコピー を選択します。その後、上に貼り付けてください。

よくある質問

Java HttpClientとは何ですか?

JavaのHttpClient(Java 11で導入)は、レガシーなHttpURLConnectionを置き換えるモダンな組み込みHTTPクライアントです。HTTP/2、非同期リクエスト、WebSocket、および流暢な(fluent)ビルダーAPIをサポートしています。外部依存関係は不要です。curl2codeは代替案としてOkHttpJsoupHttpURLConnectionもサポートしています。

HttpClient、OkHttp、HttpURLConnectionのどれを使うべきですか?

HttpClient (Java 11+) はモダンな標準であり、新しいプロジェクトで使用すべきです。OkHttpは成熟しており、Androidで広く使用されており、インターセプターやコネクションプーリングを備えています。HttpURLConnectionはすべてのJavaバージョンで動作しますが、記述が冗長です。Android/Kotlinについては、curl to Kotlin コンバーターをご覧ください。同様のモダンなアプローチについては、curl to C#をお試しください。

Javaで認証を処理するにはどうすればよいですか?

Authorizationヘッダーを設定します:request.header("Authorization", "Bearer " + token)。Basic認証の場合は、Base64.getEncoder().encodeToString((user + ":" + pass).getBytes())でエンコードします。HttpClientは、自動的な資格情報処理のためのAuthenticatorもサポートしています。

Javaでマルチパートフォームデータを送信するにはどうすればよいですか?

Java 11+ のHttpClientでは、境界文字列(boundary)を使用した手動のマルチパートボディ構築が必要です。手動でフォーマットされたパーツと共にHttpRequest.BodyPublishers.ofString()を使用します。OkHttpはMultipartBody.Builderでこれを簡素化します。curl2codeは、選択したJavaライブラリに適したマルチパートコードを生成します。

JavaでHTTPエラーを処理するにはどうすればよいですか?

HttpClientでは、各リクエストの後にresponse.statusCode()を確認してください。HTTPエラーで例外はスローされません。IOException(ネットワーク)およびInterruptedException(非同期)のために、呼び出しをtry/catchで囲みます。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に渡すと、認証ヘッダー.header("Authorization", "Bearer YOUR_TOKEN")を含むHttpClientのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。

JavaでContent-Typeヘッダーを設定する方法は?

curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダー.header("Content-Type", "application/json")を含むHttpClientのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいHttpClient APIにマッピングします。

便利なリンク

curl ガイド

curl を他の言語に変換