2013-06-20 34 views
0

我在寫一個Windows Phone應用程序,我需要做一個http請求。這個請求返回給我一個隨機值,當我請求它的url時,它會隨時更改。如何刷新Windows Phone上的HttpWebRequest對象

所以我點擊一個按鈕的應用程序我收到我想要的隨機值,但是,如果再次單擊該按鈕,我會收到相同的隨機值!我在服務器端放置了一個斷點,只有一次,如果點擊按鈕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); 

} 

回答

0

您正在運行到響應緩存 - 一個隨機字符串附加到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); 
    ... 
} 
+0

真棒! Thx傢伙!現在這工作正常!有點奇怪使用這個,但工作! –

相關問題