curl を Dart に変換

http パッケージを使用して、curl コマンドを Dart コードに変換します。curl2code は WebAssembly を介してブラウザ内で完全に動作するため、データは非公開に保たれます。Kotlin については、curl to Kotlin 変換ツールをお試しください。Swift については、curl to Swift をご覧ください。以下に、Flutter で使える Dart の例を掲載しています。

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

  1. 1

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

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

  2. 2

    ネットワークタブに移動

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

  3. 3

    cURL としてコピー

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

よくある質問

Dartのhttpパッケージとは何ですか?

httpパッケージは、DartおよびFlutterで推奨されるHTTPクライアントです。GET、POST、マルチパートアップロード、およびストリーミングのためのシンプルなFutureベースのAPIを提供します。dart pub add httpでインストールします。モバイル、ウェブ、サーバーなど、すべてのDartプラットフォームで動作します。curl2codeは、Dart変換のデフォルトとしてこれを使用します。

http、dio、HttpClientのどれを使うべきですか?

httpはシンプルで軽量であり、基本的なリクエストに最適です。dioは、インターセプター、FormData、ダウンロードの進捗確認、キャンセルなどの機能を追加します。HttpClient (dart:io) は低レベルで標準搭載されていますが、記述が冗長になります。インターセプターが必要なFlutterアプリの場合はdioを選択してください。同様のモバイルクライアントについては、curl to Kotlinまたはcurl to Swiftを参照してください。

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

リクエストにヘッダーを渡します:http.get(url, headers: { "Authorization": "Bearer $token" })。Basic認証の場合は、base64Encode(utf8.encode("$user:$pass"))でエンコードします。curl2codeは、-uおよび-H 'Authorization'フラグを、適切に型指定されたヘッダーを持つDartコードに変換します。

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

http.MultipartRequestを使用します。リクエストを作成し、request.fields['key'] = 'value'でフィールドを追加し、request.files.add(await http.MultipartFile.fromPath('file', path))でファイルを追加します。その後、request.send()で送信します。curl2codeは、-Fフラグをこのパターンに変換します。

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

httpパッケージはHTTPエラー時に例外をスローしません。手動でresponse.statusCodeを確認してください。ネットワークエラー(SocketException)やTimeoutExceptionに備えて、呼び出しをtry/catchでラップします。長期間実行されるアプリケーションでは、適切なリソースクリーンアップのためにhttp.Clientメソッドを持つclose()を使用してください。

Dart HTTPでasync/awaitを使用するにはどうすればよいですか?

すべてのDart HTTPメソッドはFutureを返します。final response = await http.get(Uri.parse(url))のように使用します。Dartのasync/awaitは言語に組み込まれています。並列リクエストの場合は、Future.wait([request1, request2])を使用します。同様の非同期パターンについては、curl to TypeScriptまたはcurl to Swiftを参照してください。

Dartでタイムアウトを設定するにはどうすればよいですか?

任意のFutureに対して.timeout()メソッドを使用します:http.get(url).timeout(Duration(seconds: 30))。時間を超えるとTimeoutExceptionがスローされます。より詳細な制御が必要な場合は、http.Clientを作成し、dart:ioの基盤となるHttpClientconnectionTimeoutを介して構成します。

Dartでプロキシを使用するにはどうすればよいですか?

dart:ioのHttpClientを使用します:HttpClient()..findProxy = (uri) => 'PROXY proxy:8080'httpパッケージの場合は、構成済みのIOClientをラップするカスタムのHttpClientを作成します。Dartは、HTTP_PROXYおよびNO_PROXY環境変数も尊重します。

DartでJSONボディを含むPOSTリクエストを送信する方法は?

curl2codeを使用して、curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URLのようなcurlのPOSTコマンドをDartに変換します。生成されたコードではhttp.post(uri, body: jsonEncode(data), headers: {'Content-Type': 'application/json'})を使用します。curl2codeはJSONコンテンツを含む-d/--dataフラグを自動的に検出し、httpのコードに適切なContent-Typeヘッダーを設定します。

DartでBearerトークン認証を追加する方法は?

curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダーheaders: {'Authorization': 'Bearer YOUR_TOKEN'}を含むhttpのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。

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

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

便利なリンク

curl ガイド

curl を他の言語に変換