【发布时间】:2019-01-19 21:47:08
【问题描述】:
我正在使用带有 .net core 2.1 的 httpclient。现在的问题是当我尝试从 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 content-type header 中添加 charset=utf-8 呢?
【问题讨论】:
-
_httpClient.DefaultHeaders和Content.ReadAsAsync使用的参考是什么?我在Core 2.1中使用HttpClient进行了测试。我需要引用Microsoft.AspNet.WebApi.Client才能使用Content.ReadAsAsync,并且只有DefaultRequestHeaders而不是DefaultHeaders。我无法在答案中重现您的问题。
标签: asp.net asp.net-core httpclient asp.net-core-2.0