curl を C# に変換
HttpClient を使用して、curl コマンドを C# コードに変換します。curl2code は WebAssembly を介してブラウザ内で完全に動作するため、データは非公開に保たれます。Java 開発については、curl to Java 変換ツールをお試しください。TypeScript については、curl to TypeScript をご覧ください。以下に、すぐに使える C# の例を掲載しています。
ブラウザから curl をコピーする方法
- 1
デベロッパーツールを開く
F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。
- 2
ネットワークタブに移動
ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。
- 3
cURL としてコピー
リクエストを右クリック → コピー → cURL としてコピー を選択します。その後、上に貼り付けてください。
よくある質問
C# HttpClientとは何ですか?
HttpClientは、.NETにおけるモダンな組み込みHTTPクライアントです。async/awaitをネイティブでサポートし、HTTP/2、自動解凍、およびコネクションプーリングをサポートしています。ソケットの枯渇を避けるために、アプリケーション全体で単一のHttpClientインスタンス(またはIHttpClientFactory)を使用してください。curl2codeがC#変換に使用するデフォルトかつ唯一のライブラリです。
HttpClient、WebClient、HttpWebRequestのどれを使うべきですか?
HttpClientはモダンな標準であり、新しい.NETプロジェクトでは常にこれを使用してください。WebClientとHttpWebRequestはレガシーであり、新しいコードでは使用すべきではありません。HttpClientは非同期サポート、より優れたパフォーマンス、およびよりクリーンなAPIを提供します。同様のモダンなクライアントについては、curl to Javaまたはcurl to Goをご覧ください。
C#で認証を処理するにはどうすればよいですか?
ヘッダーを設定します:client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token)。Basic認証の場合は、資格情報をエンコードしてヘッダーを設定します。リクエストごとの認証にはrequest.Headers.Authorizationを使用します。curl2codeは-uおよび-H 'Authorization'を検出し、正しいC#コードを生成します。
C#でマルチパートフォームデータを送信するにはどうすればよいですか?
MultipartFormDataContentを使用します。フィールドにはStringContentを、ファイルにはStreamContentを持つContentDispositionを追加します。マルチパートコンテンツをPostAsync(url, content)に渡します。Content-Typeの境界(boundary)は自動的に設定されます。curl2codeは-Fフラグをこのパターンに変換します。
C#でHTTPエラーを処理するにはどうすればよいですか?
2xx以外のステータスでresponse.EnsureSuccessStatusCode()をスローするには、HttpRequestExceptionを呼び出します。または、response.IsSuccessStatusCodeとresponse.StatusCodeを手動で確認します。HttpRequestException、TaskCanceledException(タイムアウト)、およびOperationCanceledExceptionのためにtry/catchで囲みます。
HttpClientでasync/awaitを使用するにはどうすればよいですか?
HttpClientは設計上非同期です。すべてのメソッドはTaskを返します:var response = await client.GetAsync(url)。ボディにはawait response.Content.ReadAsStringAsync()を使用します。並列リクエストにはTask.WhenAll()を使用します。.Resultや.Wait()は決して使用しないでください。デッドロックの原因となる可能性があります。同様の非同期パターンについては、curl to TypeScriptをご覧ください。
C# HttpClientでタイムアウトを設定するにはどうすればよいですか?
全体のタイムアウトにはclient.Timeout = TimeSpan.FromSeconds(30)を設定します。リクエストごとの制御には、タイムアウトを指定したCancellationTokenSourceを使用します:new CancellationTokenSource(TimeSpan.FromSeconds(10))。リトライには、Pollyライブラリまたはリトライポリシーを備えたIHttpClientFactoryを使用してください。
C#でプロキシを設定するにはどうすればよいですか?
プロキシを指定してHttpClientHandlerを作成します:handler.Proxy = new WebProxy("http://proxy:8080")。そのハンドラーをnew HttpClient(handler)に渡します。ローカルアドレスに対してプロキシをバイパスするには、handler.Proxy.BypassProxyOnLocal = trueを設定します。curl2codeは-xおよび--proxyフラグをこのセットアップに変換します。
C#でJSONボディを含むPOSTリクエストを送信する方法は?
curl2codeを使用して、curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URLのようなcurlのPOSTコマンドをC#に変換します。生成されたコードではnew StringContent(json, Encoding.UTF8, 'application/json')を使用します。curl2codeはJSONコンテンツを含む-d/--dataフラグを自動的に検出し、HttpClientのコードに適切なContent-Typeヘッダーを設定します。
C#でBearerトークン認証を追加する方法は?
curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダーclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue('Bearer', token)を含むHttpClientのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."と--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。
C#でContent-Typeヘッダーを設定する方法は?
curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダーnew StringContent(json, Encoding.UTF8, 'application/json')を含むHttpClientのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいHttpClient APIにマッピングします。