[英]C# WP8: How to call an async task method consecutively and get a new response every time?
该方法:
public async Task<string> GetjsonStream(string url)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
string content = await response.Content.ReadAsStringAsync();
return content;
}
通过此方法调用:
private async void button_Click(object sender, RoutedEventArgs e)
{
String URL = URL_core + API_call;
try
{
string response = await GetjsonStream(URL);
JSONReturn answere = JsonConvert.DeserializeObject<JSONReturn>(response);
output_box.Text = answere.value;
}
catch (Exception ex)
{
output_box.Text = URL;
}
}
我试图每次在页面上按下按钮时都进行一次API调用。 我希望能够在不重新加载页面的情况下按住按钮并获得新的结果。 但是,现在每次按下按钮时,我都会从“ GetjsonStream”方法获得相同的响应。
我很确定我对异步方法的处理不正确。 似乎我需要强制等待它或启动任务的新实例。 我仍然对C#还是陌生的,并且在不断学习中,因此我希望我缺少一些明显的东西。
编辑:一些澄清:
URL调用随机生成器。 因此,每次都会得到不同的结果。 当逐步执行“ GetjsonStream”方法时,“内容”将始终相同。
另外,我发现如果我等待一两分钟,然后再次按下该按钮,则可以得到新的结果。 我想知道是否有一些超时设置。
我很确定我对异步方法的处理不正确。
否,但是您处理HTTP错误。 :)
可以缓存HTTP获取。 由于API应始终返回不同的结果,因此应修改服务器以发送标头以禁用缓存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.