1

我正在尝试发布以下请求,但我收到了"Unsupported Media Type"回复。我正在设置Content-Typeapplication/json. 任何帮助,将不胜感激。

var json = JsonConvert.SerializeObject(request);
var stringContent = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
MyResult result = new MyResult();
using (var client = new HttpClient())
{
    client.BaseAddress = new Uri(baseurl);
    client.DefaultRequestHeaders.Clear();               
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", base64ApiKey);
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));               
    HttpResponseMessage Res = await client.PostAsync(method, stringContent);
    if (Res.IsSuccessStatusCode)
    {
        var response = Res.Content.ReadAsStringAsync().Result;
        result = JsonConvert.DeserializeObject<MyResult>(response);
    }               
}
4

1 回答 1

4

在检查了从我的代码发送的原始数据后,我看到这一行正在添加字符集:

var stringContent = new StringContent(json, UnicodeEncoding.UTF8, "application/json");

发送的实际数据如下所示:

Content-Type: application/json; charset=utf-8

我需要从请求中删除字符集:

stringContent.Headers.ContentType.CharSet = string.Empty;
于 2019-03-12T11:54:34.270 回答