15

HttpClient で Content-Type を設定できません。私は次の質問に従いました: HttpClient リクエストの Content-Type ヘッダーをどのように設定しますか? しかし、まだ運がありません。

String rcString = JsonConvert.SerializeObject(new RoadsmartChecks() { userguid = user_guid, coords = coordinates, radius = (radius * 100) + "" }, ROADSMART_JSON_FORMAT, JSONNET_SETTINGS);
HttpClient c = new HttpClient();
c.BaseAddress = new Uri(BASE_URL);
c.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); //Keeps returning false
c.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", hash_aes);
c.DefaultRequestHeaders.TryAddWithoutValidation("Roadsmart-app", Constant.APP_ID);
c.DefaultRequestHeaders.TryAddWithoutValidation("Roadsmart-user", user_guid);
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, BASE_URL + URL_CHECKS + "/fetch");
req.Content = new StringContent(rcString);
await c.SendAsync(req).ContinueWith(respTask =>
{
    Debug.WriteLine("Response: {0}", respTask.Result);
});

デバッガ Flurl ライブラリを使用して試してみましたが、「Content-Type」を追加しようとするとクラッシュします。

misused header name content-type

では、実際に追加するように強制するにはどうすればよいですか? 前もって感謝します。

4

3 に答える 3

28

私はあなたがこれを試してみるべきだと思います

req.Content = new StringContent(rcString, Encoding.UTF8, "application/json");

このリンクをチェックしてください:

HttpClient リクエストの Content-Type ヘッダーをどのように設定しますか?

編集

この行を削除しc.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");て確認してください

于 2015-03-04T09:52:01.110 に答える