我正在将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?
答案 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