HttpClient-没有mediatypeformatter可用于读取“模型”类型的对象

时间:2018-08-13 07:57:41

标签: asp.net asp.net-core httpclient asp.net-core-2.0

我正在将httpclient与.net core 2.1一起使用。现在的问题是,当我尝试从url获取数据时,出现错误“没有mediatypeformatter可用于读取'Model'类型的对象”。该代码在其他地方工作正常,但是在这里我遇到了异常。这是代码:

            string url = uri;
            _httpClient.BaseAddress = new Uri(somestring);
            _httpClient.DefaultHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = await _httpClient.GetAsync(url);
            response.EnsureSuccessStatusCode();
            return await response.Content.ReadAsAsync<MyModel>();

如果我使用response.Content.ReadAsStringAsync()并使用JsonConvert反序列化字符串,则效果很好,但我认为_httpClient不太灵活。在使用restsharp之前,我也很久以前就遇到了这个问题,但是后来我使用了“ application / json; charset = utf-8”,它开始正常工作。那么有没有办法在httpclient内容类型标头中添加charset = utf-8?

1 个答案:

答案 0 :(得分:-1)

我用下面的代码进行了测试,下面的代码可以工作,建议您进行测试:

#elif

由于它可以与 HttpClient client = new HttpClient(); var response = await client.GetAsync(@"https://localhost:44342/Products"); response.EnsureSuccessStatusCode(); var result = await response.Content.ReadAsAsync<Product>(); 一起使用,因此建议您尝试为JsonConvert实现扩展方法,以解决此问题。

Content