OVH Cloud OVH Cloud

InterReadFile

1 réponse
Avatar
jean saint jalmes
Bonjour,

Sous VB6.0, j'utilise l'API WinInet pour échanger des flux Http avec un
serveur distant.

Pour lire le flux entrant, j'utilise la fonction InternetReadFile comme suit :

Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As
Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long,
lNumberOfBytesRead As Long) As Integer

private sub Get_HttpResponse(XML as string)

Dim Response as string
Dim hRequest,Size, Length as long

Size = 8192&
Response = string$(Size,vbNullChar)
If InternetReadFile(hRequest, Response, Size, Length) = 0 Then
'Erreur
Else
XML= Left$(Response, Length)
End If
end sub

Il semble que InternetReadFile soit une fonction asynchrone et il arrive que
XML ne contienne qu'une partie du flux Http ce qui entraine une erreur dans
la suite de mes traitements. J'ai contourné le problème en installant une
temporisation mais il y a surement une solution plus élégante soit pour
interdire le mode asynchrone de InternetReadFile soit pour tester la fin du
fichier Http dans cette fonction.

En vous remerciant par avance;

Cordialement, Jean

1 réponse

Avatar
jean saint jalmes
Pardon, je viens de trouver la réponse dans la MSDN

Jean