Bonjour tout le monde
Alors voici mon problème, j'espere que vous pourrez m'aider.
Je dois effectuer 2 requetes http, une pour me connecter à un site, l'autre pour récupérer des infos. A partir de ces infos, je retourne un XmlDocument.
Le code suivante fonctionne très bien. Le problème est que j'aimerais faire tourner cette partie de mon code dans un Thread à part (ca, ca va) mais surtout pouvoir interrompre la connexion et la relancer par la suite sans que ca se marche dessus.
Avec les quelques essais que j'ai pu faire, ca fonctionne quelque fois, mais arrive toujours un moment où je lève ce genre d'exception: "Impossible de rappeler BeginGetRequestStream/BeginGetResponse lorsqu'un appel précédent est en cours."
J'ai essayé en passant les variables "request" "response" etc. en global afin de couper la connexion quand je veux, mais évidemment ca rentre en conflit à cause des thread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // connection HttpWebRequest request = (HttpWebRequest)WebRequest.Create(jiraWebrequestConnection); request.CookieContainer = new CookieContainer(); HttpWebResponse response = (HttpWebResponse)request.BeginGetResponse();//.GetResponse(); // url webrequest HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create(url); request2.CookieContainer = request.CookieContainer; HttpWebResponse response2 = (HttpWebResponse)request2.BeginGetResponse();//.GetResponse(); XmlReaderSettings xrs = new XmlReaderSettings(); xrs.ProhibitDtd = false; XmlReader xr = XmlReader.Create(response2.GetResponseStream(), xrs); XmlDocument rssDoc = new XmlDocument(); rssDoc.Load(xr); xr.Close(); response.Close(); response2.Close(); return rssDoc;
J'ai tenté d'utiliser des requetes asynchrones, car je sais que je vais devoir passer par là, mais je ne m'en sors pas...
Quelqu'un aurait il un conseil pour me débloquer ?
Merci beaucoup
K.
Partager