[英]does not contain definition for Content.ReadAsStringAsync() when using web client call
this is my service 这是我的服务
public Task<NewsModel> GetNews(string query,string count)
{
var task = Task<NewsModel>.Factory
.StartNew(() => {
var responseData = "";
NewsModel list = new NewsModel();
var client = new HttpClient();
var uri = "Some URL";
using (var response = client.GetAsync(uri)) {
responseData = response.Content.ReadAsStringAsync();
list = JsonConvert.DeserializeObject<NewsModel>(responseData);
list.value.RemoveAll(item => item.image == null);
}
return list;
});
task.ContinueWith(t => {
}, TaskContinuationOptions.OnlyOnRanToCompletion);
task.ContinueWith(t => {
if (t.Exception == null)
return;
var ex = t.Exception.Flatten();
}, TaskContinuationOptions.OnlyOnFaulted);
return task;
}
compilation error 编译错误
i am getting the above error when i try to compile can you please tell me how can i use Content.ReadAsStringAsync() in the above functionality
我尝试编译时出现上述错误, 您能告诉我如何在上述功能中使用Content.ReadAsStringAsync()
Those methods return Tasks so they should be awaited. 这些方法返回Tasks,因此应等待它们。
using (var response = await client.GetAsync(uri)) {
responseData = await response.Content.ReadAsStringAsync();
list = JsonConvert.DeserializeObject<NewsModel>(responseData);
list.value.RemoveAll(item => item.image == null);
}
In fact that entire method should be refactored to use async/await 实际上,应将整个方法重构为使用异步/等待
HttpClient client = new HttpClient();
public async Task<NewsModel> GetNews(string query, string count) {
NewsModel list = new NewsModel();
var uri = "Some URL";
using (var response = await client.GetAsync(uri)) {
var responseData = await response.Content.ReadAsStringAsync();
list = JsonConvert.DeserializeObject<NewsModel>(responseData);
list.value.RemoveAll(item => item.image == null);
}
return list;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.