[c#]如何刷新上 Windows Phone 的区域性对象

标签: windows C#
发布时间: 2013/12/8 5:03:13
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在写一个 windows 电话应用程序中需要做一个 http 请求。此请求返回到我一个随机值,它总是改变当我请求的 url。

所以我有一个带有按钮的应用程序,当点击它的时候我收到的随机值,我想要的但是,如果单击按钮再次收到相同的随机值!!在服务器端上中放置一个断点,如果单击按钮 10 倍它将到达断点只是第一次就一次,达到 !!每当单击按钮,我有一个新的随机值!

我需要使用 CookieContainer,因为我需要在我的服务器上保留一些定义在此会话中的对象。如果我不使用的 CookieContainer 我不能保持会话,所以当我打电话给第二个请求我没有对象那里。

private async Task<string> requestURLData(HttpWebRequest request)
{

HttpWebResponse response = (HttpWebResponse) await Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, request);

var responseStream = response.GetResponseStream();
var sr = new StreamReader(responseStream);

string received = await sr.ReadToEndAsync();

return received;
}


private async Task<string> requestUrl(string url, CookieContainer cookie)
{
var request = WebRequest.Create(new Uri(url)) as HttpWebRequest;
request.CookieContainer = cookie;

return await this.requestURLData(request);

}


private async Button_Click(object sender, RoutedEventArgs e)
{

CookieContainer cookie = new CookieContainer();
var result = await this.requestUrl(this.urlBase + "getRandomNum", cookie);

result = await this.requestUrl(this.urlBase + "getAnotherValue", cookie);

}

解决方法 1:

你遇到响应缓存-到您您的服务器会忽略,保证你不命中缓存的 url 的末尾追加一个随机的字符串:

Random _rand = new Random();

private async Button_Click(object sender, RoutedEventArgs e)
{

   CookieContainer cookie = new CookieContainer();
   var result = await this.requestUrl(this.urlBase + "getRandomNum&rubbish=" + _rand.Next(), cookie);
   ...
}
赞助商