HttpWebRequest和HttpWebResponse显示旧数据 [英] HttpWebRequest and HttpWebResponse shows old data
本文介绍了HttpWebRequest和HttpWebResponse显示旧数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
更新数据后,在调用Web服务时,它仍会获取旧数据.仅当我注销该应用程序然后再次登录时,才会加载新数据.
After updating the data, when the webservice is called, it still fetches old data. New data is loaded only when I logout of the app and then login again.
protected async override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
parameterValue = this.NavigationContext.QueryString["parameter"];
Uri UserDetailUrl = new Uri(Constants.WebService.ws_single_user + "?user_id=" + parameterValue);
HttpWebRequest UserDetailRequest = (HttpWebRequest)HttpWebRequest.Create(UserDetailUrl);
HttpWebResponse UserDetailResponse = (HttpWebResponse)await UserDetailRequest.GetResponseAsync();
StreamReader reader = new StreamReader(UserDetailResponse.GetResponseStream());
string UserDetailString = reader.ReadToEnd();
reader.Close();
XDocument XUserDetailDoc = XDocument.Load(new StringReader(UserDetailString));
if (((XElement)XUserDetailDoc.Element("main")).Element("result").Value == "success")
{
txtEmail.Text = ((XElement)XUserDetailDoc.Element("main")).Element("user").Element("email").Value;
txtFirstName.Text = ((XElement)XUserDetailDoc.Element("main")).Element("user").Element("fname").Value;
txtLastName.Text = ((XElement)XUserDetailDoc.Element("main")).Element("user").Element("lname").Value;
txtMobile.Text = ((XElement)XUserDetailDoc.Element("main")).Element("user").Element("mobile").Value;
}
}
Windows 8 Phone应用程序-使用C#和XAML
Windows 8 Phone App - using C# and XAML
GetResponseAsync如下:
The GetResponseAsync is as follows:
public static Task<HttpWebResponse> GetResponseAsync(this HttpWebRequest request)
{
var taskComplete = new TaskCompletionSource<HttpWebResponse>();
request.BeginGetResponse(asyncResponse =>
{
try
{
HttpWebRequest responseRequest = (HttpWebRequest)asyncResponse.AsyncState;
HttpWebResponse someResponse = (HttpWebResponse)responseRequest.EndGetResponse(asyncResponse);
taskComplete.TrySetResult(someResponse);
}
catch (WebException webExc)
{
HttpWebResponse failedResponse = (HttpWebResponse)webExc.Response;
taskComplete.TrySetResult(failedResponse);
}
}, request);
return taskComplete.Task;
推荐答案
我遇到了同样的问题,我通过在服务器端添加响应标头来解决此问题.
I am facing same problem, and i solved by add response header in my server side like this..
response.setHeader("Cache-Control", "no-cache");
也许这对您也有帮助.
这篇关于HttpWebRequest和HttpWebResponse显示旧数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文