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

C#WP8:如何连续调用异步任务方法并每次都获得新的响应?,c#,windows-phone-8,windows-store-apps,C#,Windows Phone 8,Windows Store Apps,此方法: public async Task<string> GetjsonStream(string url) { HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(url); string content = await response.Content.ReadAsStringAsync()

此方法:

 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;
    }
公共异步任务GetjsonStream(字符串url) { HttpClient=新的HttpClient(); HttpResponseMessage response=wait client.GetAsync(url); string content=wait response.content.ReadAsStringAsync(); 返回内容; } 通过以下方法调用:

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;
        }
    }
private async void按钮\u单击(对象发送方,路由目标)
{
字符串URL=URL\u核心+API\u调用;
尝试
{
字符串响应=等待GetjsonStream(URL);
JSONReturn ANSARE=JsonConvert.DeserializeObject(响应);
output_box.Text=answere.value;
}
捕获(例外情况除外)
{
output_box.Text=URL;
}
}
我试图让API调用在每次按下页面上的按钮时发生。我希望能够在不重新加载页面的情况下继续按下按钮,并获得新结果。然而,现在我每次按下按钮时都会从“GetjsonStream”方法得到相同的响应

我很确定我错误地处理了异步方法。看起来我要么强制等待,要么启动新的任务实例。我对C#还是一个新手,在学习的过程中不断学习,所以我希望我遗漏了一些明显的东西

编辑:一些澄清:

URL调用随机生成器。所以每次都应该是不同的结果。 当单步执行“GetjsonStream”方法时,“content”每次都是相同的

另外,我发现如果我等一两分钟,再按一下按钮,我会得到一个新的结果。我想知道是否有一些超时设置到位

我很确定我错误地处理了异步方法

没有,但您处理不当(HTTP::)


可以缓存HTTP GET。由于API应始终返回不同的结果,因此应修改服务器以发送禁用缓存的标头。

我非常确定您的代码能够完成您希望它完成的任务。在
按钮中放置一个断点\u单击
,无论何时单击它,都会看到它进入内部。现在,为什么每次都会得到不同的结果?目标URL不总是相同的吗?此外,还有一个
HttpClient.GetStringAsync
;)我将添加一个编辑。URL调用随机生成器。所以每次都应该是不同的结果。通过“GetjsonStream”方法时,“内容”每次都是相同的。请尝试在url末尾添加
“?=”+DateTime。现在。勾选
,可能会缓存响应,因为请求之间的url相同。如果在浏览器中刷新该页面,每次尝试都会得到新的响应吗?是的,我可以在浏览器中不断重新提交URL,并且每次都会生成新的响应。它基本上只需要一些边界,并根据需要的数量生成随机字符。所以我每次都可以传递相同的输入,每次都可以得到不同的值。如果我更改“API_Call”中的值,它将返回一个新的响应。所以我认为缓存可能是个问题。我添加了以下内容:
header('Cache-Control:no-store,no-Cache,must-revalidate')
头('Cache-Control:post-check=0,pre-check=0',FALSE)
标题('Pragma:no cache')
到执行json编码的PHP文件,它现在就像一个符咒。非常感谢。