Visual Basic 2010 : GetResponse trés lent et bloquage du Form pour ouverture d'un fichier php avec du xml
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:
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:
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.