cURLからC#へ

curlコマンドを貼り付けると、.NETが求める場所にヘッダーを置いたHttpClientコードが得られます。

cURLからC#へは完全にブラウザ内で動作します。貼り付けたコマンドはトークンごと端末上で変換され、送信されません。

cURLからJavaへを開く

cURLからC#へ について

APIドキュメントのcurlコマンドをC#に書き直す作業は小さいのに、いつも同じ場所で失敗します。.NETはヘッダーをリクエストとコンテンツに分けており、Content-TypeはHttpContentのものでHttpRequestMessageのものではありません。誤った側に設定すると、コンパイルではなく実行時に例外になります。このツールはcurlのフラグ、つまりメソッド、ヘッダー、ボディ、そしてBasic認証になる-uを読み取り、各ヘッダーを正しい場所に置いたHttpClientのプログラムを出力します。

機能

cURLからC#へ の使い方

  1. ヘッダーとボディを含むcurlコマンドを貼り付けます
  2. 入力に合わせて生成されるC#を読みます
  3. コピーするか、Program.csとして保存します
  4. 変換できなかったフラグの警告を確認します

入力

curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"Ada"}'

出力

request.Content = new StringContent(
    "{\"name\":\"Ada\"}",
    Encoding.UTF8,
    "application/json");

メディアタイプはStringContentに渡します。request.Headersに設定するのが実行時例外の原因です。

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

よくある質問

curlコマンドをC#に変換するには。
上に貼り付けてください。メソッド、URL、ヘッダー、ボディを解析してHttpClientのプログラムを出力します。
HttpRequestMessageにContent-Typeを設定できないのはなぜですか。
.NETがリクエストヘッダーとコンテンツヘッダーを分けており、Content-Typeは後者だからです。前者に設定すると例外になります。
C#でBasic認証を送るには。
user:passwordをbase64にし、DefaultRequestHeadersでBasicスキームのAuthenticationHeaderValueとして設定します。
curlコマンドはどこかに送られますか。
いいえ。ブラウザ内で解析・変換されるので、含まれるトークンや鍵は端末に留まります。

関連ツール

すべての ArrayKit ツール