gpt4 book ai didi

c# - Windows Phone 8 HttpClient Get 方法返回奇怪的结果

转载 作者:行者123 更新时间:2023-11-30 16:13:10 25 4
gpt4 key购买 nike

我正在开发一个 Windows Phone 8 应用程序,它将一些数据发送到执行它并返回结果的服务器。可以随时查询服务器以获取当前执行的状态,可以是正在初始化、正在运行或已完成。只有当执行处于完成状态时,输出才可用。用户可以选择通过按“更新”按钮来检查当前的执行状态

XAML

<Button Background="{StaticResource PhoneAccentBrush}" 
Click="UpdateRunInfo" > Update info</Button>

这是方法

private async void UpdateRunInfo(object sender, RoutedEventArgs e)
{
ExecutionItem clicked = ((sender as Button).DataContext as ExecutionItem);
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential("username", "password");
HttpClient client = new HttpClient(handler);
string Url = "http://somefakeurl.com/server/run/id/status";
string _status = await client.GetStringAsync(Url);
clicked.status = _status;
}

所以问题是这个方法只有在第一次调用时才能正常工作。之后,无论服务器的实际状态如何,GetStringAsync() 都会返回与第一次调用相同的结果。

我在单独的 Windows Phone 项目中尝试过这种方法,结果是一样的。为确保服务器正常运行,这次我在桌面应用程序上再次尝试了相同的 C# 代码,它运行良好。

我的理论是,因为我多次发送相同的请求,WP OS 正在缓存最后的结果并将它返回给我,而不是实际向服务器发出 GET 请求。

为什么 HttpClient 返回缓存的状态而不是实际从服务器获取状态?

最佳答案

正如人们评论的那样,这是一个缓存问题。用户 L.B. 的建议设置 client.DefaultRequestHeaders.IfModifiedSince 解决了问题

关于c# - Windows Phone 8 HttpClient Get 方法返回奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22118123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com