2012-03-13 119 views
0

我得到了一個Windows Phone項目,該項目正在獲取我使用REST從webservice呼叫朋友的對象列表。整個連接部分第一次運行良好,第二次運行失敗。即使我更改數據庫中的值,我也會從方法中獲得相同的值。這是一個例子。Windows Phone REST呼叫問題

  • 用戶進入一個頁面
  • 權值使用WCF服務
  • 我在數據庫中更改數值手動
  • 用戶進入頁面再次和方法是從數據庫中提取獲取數據會再次啓動,但它仍然會獲得與第一次從Web服務中獲取數據相同的結果。

任何想法?

代碼:

HttpWebRequest request; 

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
    { 
     UpdateData(); 
    } 

    public void UpdateData() 
    { 
     ((App)App.Current).ShowProgressBar(); 
     string uri = App.SERVICE_URI + "/GetFriends?userid=" + App.CurrentUserId; 
     request = (HttpWebRequest)HttpWebRequest.Create(new Uri(uri)); 
     request.BeginGetResponse(new AsyncCallback(GetFriendsReadCallback), request); 
    } 

    private void GetFriendsReadCallback(IAsyncResult asynchronousResult) 
    { 
     List<Friend> friends; 
     HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; 
     HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); 
     using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream())) 
     { 
      string resultString = streamReader1.ReadToEnd(); 
      var ser = new DataContractJsonSerializer(typeof(List<Friend>)); 
      var stream = new MemoryStream(Encoding.Unicode.GetBytes(resultString)); 
      DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(List<Friend>)); 
      friends = (List<Friend>)jsonSerializer.ReadObject(stream); 
     } 
+0

可能重複http://stackoverflow.com/questions/9668884/webclient-in-a-wp7- 1-app-called-only-once) – Robaticus 2012-03-13 18:19:22

回答

3

您很可能遇到了緩存問題。要麼改變你的REST服務禁用緩存:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

如果您沒有訪問到服務代碼,可以追加一個改變虛擬參數對您的請求的URL的結尾(例如GUID或DateTime.Now .Ticks)。

看看我的答案在這裏:WebClient in a WP7.1 app called only once

[Web客戶端在WP7.1應用程序調用一次(的
1

我與fiddler2操作模擬器中運行這個 - 檢查正在通過HTTP發送什麼ID,以找出是否呼叫正在進行第二次,如果正確答案是被送回。一旦你知道問題是客戶端還是服務器端,那麼使用斷點開始調試 - 哪裏錯誤的值首先被找到。

+0

我使用其他REST WCF測試客戶端測試了Web服務,即使我改變了嘗試之間的值,我也像魅力一樣工作。 – parek 2012-03-13 18:21:11