Bonjour,
Je code une application console en C# qui dans une boucle contacte une page Web en lui passant des paramètres POST. Au premier tour de boucle tout fonctionne parfaitement mais dès le deuxième la méthode GetRequestStream() (qui récupère les données contenues dans la requête) génère une erreur de timeout :
Quelqu'un aurait-il une idée de la cause du problème ? J'ai lu quelque part qu'il fallait éviter le KeepAlive=false mais le retirer ne change rien à l'affaire...
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
23
24 while( i >= 0 && (i < i2 || i2 < 0) ) { HttpWebRequest HttpWReq2 = (HttpWebRequest)WebRequest.Create("http://titi/toto.asp"); //HttpWReq2.KeepAlive = false; HttpWReq2.Method = "POST"; HttpWReq2.ContentType = STR_CONTENT_TYPE; encoding = new System.Text.ASCIIEncoding(); string postData2 = "numgec=" + numgec; byte[] byte1 = encoding.GetBytes(postData2); HttpWReq2.ContentLength = postData2.Length; Stream newStream = HttpWReq2.GetRequestStream(); // <===== plantage ici newStream.Write(byte1,0,byte1.Length); Console.WriteLine(newStream.ToString() + " "+ HttpWReq2.Address + " " + HttpWReq2.ContentLength); HttpWebResponse HttpWResp2 = (HttpWebResponse)HttpWReq2.GetResponse(); enc = System.Text.Encoding.GetEncoding(1252); loResponseStream = new StreamReader(HttpWResp2.GetResponseStream(), enc); string s2 = loResponseStream.ReadToEnd(); loResponseStream.Close(); HttpWResp2.Close(); [...] }
Partager