gpt4 book ai didi

c# - HttpWebRequest 和 HttpWebResponse 显示旧数据

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:16 24 4
gpt4 key购买 nike

更新数据后,当调用webservice时,它仍然会获取旧数据。仅当我注销应用程序然后再次登录时才会加载新数据。

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

GetResponseAsync 如下:

  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;

最佳答案

似乎 HttpWebRequest 正在返回缓存结果。您有几种方法可以避免这种情况:

  1. 在 URL 中添加一个随机字符串,因此每次访问不同的 URL(因此 www.example.com/page 变为 www.example.com/page?random=dsa $fds21).
  2. 禁用响应缓存,查看要添加到 OnNavigatedTo 的新代码:

-

HttpWebRequest UserDetailRequest = (HttpWebRequest)HttpWebRequest.Create(UserDetailUrl); 
// Define a cache policy for this request only.
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
request.CachePolicy = noCachePolicy;

关于c# - HttpWebRequest 和 HttpWebResponse 显示旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18288744/

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