繁体   English   中英

C#WP8:如何连续调用异步任务方法并每次都获得新的响应?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM