Bonjour,

J'ai un problème de bloquage de fenêtre (form1) si on veut la déplacer aprés avoir cliqué sur Button1. J'ai remarqué que le problème ne vient pas de WebRequest mais plutot de request.GetResponse().


Voici le code du form1 sur un Button1 qui provoque une lenteur voir même un freez de l'application tant qu'il a pas fini de télécharger le contenu du fichier php (je ne comprend pas d'où il pourrait venir le problème):

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
 
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim encoding As New UTF8Encoding
        Dim response As WebResponse
        'dans connect.php c'est du xml
        Dim request As WebRequest = WebRequest.Create("http://www.site.org/connect.php")
        'Proxy Nothing pour gagner 10 secondes de lenteur du form
        request.Proxy = Nothing
 
        request.Method = "POST"
 
        Dim postData As String = "pseudo=admin&password=admin"        
        Dim byteArray As Byte() = encoding.GetBytes(postData)
 
        request.ContentType = "application/x-www-form-urlencoded"
 
        Dim dataStream As Stream = request.GetRequestStream()
 
        dataStream.Write(byteArray, 0, byteArray.Length)
        dataStream.Close()
 
        response = request.GetResponse()
 
        dataStream = response.GetResponseStream()
        Dim reader As New StreamReader(dataStream)
 
        Dim xmlDocument As New Xml.XmlDocument()
        xmlDocument.LoadXml(reader.ReadToEnd())
        Dim value As String = xmlDocument.SelectSingleNode("test/ok").InnerText
        returnok = value
 
 
        Try
            Dim value2 As String = xmlDocument.SelectSingleNode("test/pseudo").InnerText
        Catch
        End Try
 
 
        If value = "HTTP_VALIDATOR" Then
            Form2.Show()
            Me.Hide()
        Else
            MsgBox("Mauvais login/mot de passe pour récuperer le contenu du xml")
        End If
 
 
        reader.Close()
        dataStream.Close()
        response.Close()
        response.GetResponseStream().Close()
 
    End Sub


Le contenu du xml (il marche parfaitement bien et il récupere toutes les données que j'veux aprés 2 secondes de lenteur ):

Code xml : 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
25
26
27
28
<?php
 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Cache-Control: no-store, no-cache, must-revalidate" );
header("Cache-Control: GET-check=0, pre-check=0",false);
header("Pragma: no-cache");
 
require("la_bdd.php"); 
 
$login 		= $_POST['pseudo']; //le login ou pseudo du membre
$password 	= $_POST['password']; //le password du membre
 
echo '<?xml version="1.0" encoding="utf-8"?>';
?>
<test>
<?php
//ici il y a des While, mysql_select etc... mais comme c'est un test j'vais plutot mettre un fake:
 
if ( $login == "admin" ) {
?>
<ok>HTTP_VALIDATOR</ok>
<?php
}
else {
?>
<ok>HTTP_ERREUR</ok>
<? } ?>
</test>


Est-ce que j'ai manqué un parametre pour éviter d'avoir une application qui freez au moment ou il récupere les données dans connect.php ?


Merci de votre aide, salutations.