2013-07-21 6 views
0

Dans ma première page, je lance un webrequest asynchrone sur un événement de chargement de page.Problème avec async webrequest

Private Sub LoadRecent() 
     Dim request As HttpWebRequest = HttpWebRequest.Create("") 
     request.Method = "GET" 

     request.BeginGetResponse(New AsyncCallback(AddressOf ResponseRecent), request) 
    End Sub 
    Private Sub ResponseRecent(ByVal asynchronousResult As IAsyncResult) 
     Dim webRequest As HttpWebRequest = DirectCast(asynchronousResult.AsyncState, HttpWebRequest) 
     Dim webResponse As HttpWebResponse = webRequest.EndGetResponse(asynchronousResult) 
     Dim stream As New StreamReader(webResponse.GetResponseStream()) 
     Dim responseString = stream.ReadToEnd 

    End Sub 

En utilisant ce code, Loadrecent() est lancé à la page chargée Successfull. Supposons que j'ai un bouton dans la première page qui m'amène dans une autre page. Si j'appuie sur le bouton Retour, je suis ramené à la première page et le Loadrecent() est également déclenché. Le problème est que la réponse de la webrequest est la même que la première fois qu'elle a été tirée (et je peux vous dire que ce n'est pas possible). C'est comme si je devais disposer le Webrequest asynchrone après l'avoir fait.

Répondre

0

Il est probable que la simple mise en cache en tant que solution de contournement rende votre appel unique défini un horodatage ou un nombre aléatoire à la fin de votre URL et vous obtiendrez des résultats différents.