curl を Java に変換
モダンな HttpClient API を使用して、curl コマンドを Java コードに変換します。curl2code は WebAssembly を介してブラウザ内で完全に動作するため、データがデバイスの外に出ることはありません。Kotlin 開発については、curl to Kotlin 変換ツールをお試しください。C# (.NET) については、curl to C# をご覧ください。以下に、すぐに使える Java の例を掲載しています。
ブラウザから curl をコピーする方法
- 1
デベロッパーツールを開く
F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。
- 2
ネットワークタブに移動
ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。
- 3
cURL としてコピー
リクエストを右クリック → コピー → cURL としてコピー を選択します。その後、上に貼り付けてください。
よくある質問
Java HttpClientとは何ですか?
JavaのHttpClient(Java 11で導入)は、レガシーなHttpURLConnectionを置き換えるモダンな組み込みHTTPクライアントです。HTTP/2、非同期リクエスト、WebSocket、および流暢な(fluent)ビルダーAPIをサポートしています。外部依存関係は不要です。curl2codeは代替案としてOkHttp、Jsoup、HttpURLConnectionもサポートしています。
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にマッピングします。