HttpWebRequest类(WP8)的缓存问题,求解~
刚学WP编程不久,遇到HttpWebRequest的缓存问题,求大虾指点:
如下这个代码实现的是:点击一个button后,进行HTTP GET的操作,把获取到的信息显示到TextBlock里面。调试运行都OK,但问题是:第一次点击button时,网络抓包发现确实与192.168.1.102主机有HTTP通讯;但之后再点击button,网络抓包发现没有任何通讯,但程序还是正常运行的,包括显示出最后结果。
从上面的情况来看,我觉得HttpWebRequest是不是有一个缓存机制,以至于第二次及以后的操作都没有经过网络通讯?如果是这样的话,怎么样让HttpWebRequest不要缓存,每次都实实在在的通过网络访问去获取HTTP信息?求指点~
private void Button_Click(object sender, RoutedEventArgs e)
{
HttpWebRequest test_httprequest = (HttpWebRequest)HttpWebRequest.Create("http://192.168.1.102/System/time");
string un = "admin";
string pd = "12345";
test_httprequest.Credentials = new NetworkCredential(un, pd);
test_httprequest.BeginGetResponse(cbResponseCallback, test_httprequest);
}
private void cbResponseCallback(IAsyncResult result)
{
try
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;//获取异步操作返回的的信息
WebResponse response = request.EndGetResponse(result);//结束对 Internet 资源的异步请求
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
string contents = reader.ReadToEnd();
//通过呼叫UI Thread来返回主线程
Dispatcher.BeginInvoke(() =>
{
txtblock1.Text = contents;
});
}
}
catch (Exception e)
{
Dispatcher.BeginInvoke(() =>
{
txtblock1.Text = e.Message;
});
}
}