Problème avec GetResponseStream()
Bonjour,
Quelqu'un peut m'éclairer SVP
Voilà, je fait des requêtes web pour enregistrer le contenu d'une page web en format .txt. tout ce passe bien, mais parfois, j'ai quelques messages d'erreur dont un me cause un peut de soucci.
Lorsque je reçois le message
Citation:
Le délai d'attente de l'opération a expiré.
mon ancien fichier txt de récupération est effacé et du coup la date de modification est renouvelée.
Donc, j'aurais besoin de faire lever l'exeption du objWebResponse.GetResponseStream() avant l'ouverture de mon streamwriter.
Voici mon code et merci à l'avance de vos suggestions
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 55 56 57 58 59 60 61 62
| Sub RequWeb2(ByVal Val As String, ByVal Marcher As String)
Dim Adresse As String = "http://tmx.quotemedia.com/quote.php?qm_symbol=" & Val & "&locale=FR"
Dim ValExcept As String
ValExcept = Val
If Val = "AUX" Then
ValExcept = Val & "Except"
End If
Dim objWebRequest As System.Net.WebRequest = Nothing
Dim objWebResponse As System.Net.WebResponse = Nothing
' Création de la requête
objWebRequest = System.Net.HttpWebRequest.Create(Adresse)
Try
' Envoi de la requête au serveur
objWebResponse = objWebRequest.GetResponse()
Console.WriteLine(ValExcept & "objWebResponse.ContentLength " & objWebResponse.ContentLength.ToString)
'Vérifie que la réponse contient des données
Dim objStreamReader As System.IO.StreamReader = Nothing
' Stream pour récupérer le résultat
objStreamReader = New StreamReader(objWebResponse.GetResponseStream(), Encoding.Default)
Dim Sw As New StreamWriter(My.Settings.MonPath & Marcher & "\" & ValExcept & "\" & ChoixDePage & ".txt")
' Lecture du résultat
Sw.WriteLine(objStreamReader.ReadToEnd)
Sw.Close()
If Marcher = "T" Then
QuTorontoRecup.Enqueue(ValExcept)
Console.WriteLine("il y a {0} de récupéré", QuTorontoRecup.Count.ToString)
'Envoi le résultat vers un label
DelRecToronto(QuTorontoRecup.Count.ToString)
End If
If Marcher = "V" Then
QuVancouverRecup.Enqueue(ValExcept)
Console.WriteLine("il y a {0} de récupéré", QuVancouverRecup.Count.ToString)
'Envoi le résultat vers un label
DelRecVancouver(QuVancouverRecup.Count.ToString)
End If
Catch ex As Exception
Console.WriteLine("Erreur1 ObjWebResponse: " & ValExcept & " " & ex.Message)
'Message d'erreur rencontré
'La demande a été abandonnée*: Le délai d'attente de l'opération a expiré..
'Le délai d'attente de l'opération a expiré.
'Ce flux ne prend pas en charge les opérations de recherche.
'Console.WriteLine("Err1 " & objWebResponse.GetResponseStream.Length)
'Envoi le résultat vers un RichTextBox
DelRTBEchec("Erreur1 ObjWebResponse: " & CStr(ValExcept & " " & ex.Message) & vbCrLf)
If Marcher = "T" Then
QuTorontoExept.Enqueue(ValExcept)
'Envoi le résultat vers un label
DelEchToronto(QuTorontoExept.Count.ToString)
End If
If Marcher = "V" Then
QuVancouverExcept.Enqueue(ValExcept)
'Envoi le résultat vers un label
DelEchVancouver(QuVancouverExcept.Count.ToString)
End If
Finally
' Fermeture de la connexion
If Not objWebResponse Is Nothing Then
objWebResponse.Close()
End If
End Try
End Sub |