Windows.Web.Http.HttpClient.GetStringAsync 总是返回相同的结果
今天在测试博客园新闻WP8.1客户端的时候,发现电脑上浏览的新闻已经更新了。但手机上的还没更新,于是想到肯定是有bug了。于是建了一个Web测试项目,发现只有第一次发出了请求。一开始以为是MVVM的问题,后来才发现,原来是HttpClient这个类的问题。
HttpClient会对相同Uri的Get请求进行本地缓存。
解决方法:
1、在querystring上加上一个时间戳。
2、在创建HttpClient时,加一个Filter。
1 var filter = new HttpBaseProtocolFilter(); 2 filter.CacheControl.ReadBehavior = HttpCacheReadBehavior.MostRecent; 3 using (var client = new HttpClient(filter)) 4 { 5 var html = await client.GetStringAsync(); 6 }