我想知道几天发生了什么事情。我正在为Windows Phone 8.1编写一个应用程序,该应用程序使用HttpClient从Internet下载json字符串。它运行良好,但运行应用程序(在OnNavigatedTo事件)后只有一次。稍后,粉碎应该再次下载字符串的“刷新”按钮不起作用。它仍然是第一个下载的字符串值。在服务器上,这个字符串发生了变化,我可以通过在PC上的浏览器中查看它来确认。WP8.1 HttpClient在第一次请求后没有下载字符串
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
namespace WP8App
{
public sealed partial class MainPage : Page
{
private readonly Uri Website = new Uri("https://some-website.com/files/status.json");
private HttpClient http = new HttpClient();
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Refresh();
}
private async void Button_Refresh_Click(object sender, RoutedEventArgs e)
{
Refresh();
}
private async void Refresh()
{
var response = await http.GetStringAsync(Website);
JsonObject api = JsonConvert.DeserializeObject<JsonObject>(response);
TextBox_A.Text = api.value;
TextBox_B.Text = api.length;
TextBox_C.Text = api.size;
TextBox_F.Text = api.volume;
}
private async void ShowDialog(string value)
{
MessageDialog box = new MessageDialog(value);
await box.ShowAsync();
}
}
}
我不是在异步高手,所以我指望你的鹰眼前的xD感谢
你试过把一个断点在'Refresh'方法,看它是否真的调用,并返回一个不同的值? –
请参阅http://stackoverflow.com/questions/21134380/no-cache-with-httpclient-in-windows-phone-8/28266608#28266608 – kiewic