例えば HTTP で JSON を書き込むとき、Content-Type をちゃんと設定しておきたい事があります。(と言うか、普通は設定すると思います)
Content-Type を指定るには HttpClient の DefaultRequestHeaders.Accept プロパティに追加する。もしくは HttpStringContent の Headers.ContentType プロパティをセットすれば大丈夫です。
var uri = "http://~"; // 書き込み先 var requestJson = ""; // 書き込む JSON データ using (var req = new HttpClient()) { // Content-Type 設定 req.DefaultRequestHeaders.Accept.Add( new HttpMediaTypeWithQualityHeaderValue("application/json")); using (var reqBody = new HttpStringContent(requestJson)) { // こっちでも Content-Type 設定しても OK //reqBody.Headers.ContentType // = new HttpMediaTypeHeaderValue("application/json"); using (var res = await req.PutAsync(uri, reqBody)) { if (res.IsSuccessStatusCode) { // 成功 } } } }
前者に追加するときは HttpMediaTypeWithQualityHeaderValue 、後者は HttpMediaTypeHeaderValue と微妙に型が違うので注意が必要です。(一瞬 なんでエラーになっているのかわかりませんでした)