【HttpClient】Content-Typeを明示的に設定する

APIにHttpClientを使ってPOSTリクエストを投げたかったが、URLは合っているのになぜかうまくいかなくて何でだろう?と思って調査したメモ。
API側はヘッダーにContentTypeのみを要求していました。

で、HttpClientのContentTypeはデフォルトでcharsetが追加された状態になってしまうらしい。

var content = new StringContent(data, Encoding.UTF8, "application/json");

このままだと”application/json”の後ろにcharsetが追加された状態になってしまいます。
“application/json”のみを送りたい場合は以下のコードを追加します。

content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");

これでContentTypeの内容を再設定することができました。

コメントする

メールアドレスが公開されることはありません。