C# 如何在Windows Phone上刷新HttpWebRequest对象

C# 如何在Windows Phone上刷新HttpWebRequest对象,c#,windows-phone-8,httprequest,C#,Windows Phone 8,Httprequest,我正在编写一个windows phone应用程序,需要在其中执行http请求。这个请求返回给我一个随机值,当我请求它的url时,它总是改变 所以我有一个带有按钮的应用程序,当我点击它时,我会收到我想要的随机值,但是,如果我再次点击按钮,我会收到相同的随机值!!我在服务器端设置了一个断点,它只到达一次,如果单击按钮10次,它将第一次到达断点!!我需要每当我点击按钮,我有一个新的随机值 我需要使用CookieContainer,因为在我的服务器上,我需要在这个会话中定义一些对象。如果我不使用Cook

我正在编写一个windows phone应用程序,需要在其中执行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);

}
专用异步任务请求URLDATA(HttpWebRequest请求)
{
HttpWebResponse=(HttpWebResponse)wait Task.Factory.fromsync(request.BeginGetResponse,request.EndGetResponse,request);
var responseStream=response.GetResponseStream();
var sr=新的StreamReader(responseStream);
接收到字符串=等待sr.ReadToEndAsync();
收到的报税表;
}
专用异步任务请求url(字符串url,CookieContainer cookie)
{
var request=WebRequest.Create(新Uri(url))作为HttpWebRequest;
request.CookieContainer=cookie;
返回等待此。requestURLData(请求);
}
专用异步按钮\u单击(对象发送方,路由目标)
{
CookieContainer cookie=新CookieContainer();
var result=等待this.requestUrl(this.urlBase+“getRandomNum”,cookie);
结果=等待this.requestUrl(this.urlBase+“getAnotherValue”,cookie);
}

您正在运行响应缓存-在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);
   ...
}

令人惊叹的!!Thx家伙!!现在这个工作很好!!使用这个有点奇怪,但有效!