Probleme de lecture d'une url

cs_nicolas12 Messages postés 7 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 4 août 2003 - 25 juil. 2003 à 16:41
cs_nicolas12 Messages postés 7 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 4 août 2003 - 26 juil. 2003 à 11:08
bonjour

j'ais un petit problème de lecture d'une url...

je souhaite recuperer sous forme d'une chaine de caractère le flux de retour apres avoir passer une url à une fonction

certaine des methodes que je donne apres marche tres bien sur mon lieu de travail mais fonctionne tres mal ou en parti chez moi... c'est cela qui me pose un problème

chez moi j'ais une connection wanadoo par le cable par le protocole pppoe sous windows XP(le cable sort du mur pour arriver a un boitier puis un cable rj45 y sort pour aller sur une carte réseau classic)... peut etre cela permet d'aider à comprendre

exemple de programation:
* 1
j'ais commencer par la facon la plus simple en utilisant le control "Microsoft Internet Transfert Control 6.0 (sp4)" avec le code suivant:

strHtml = Me.Inet1.OpenURL(strUrl)


ce code marche sans aucun problème de mon lieu de travail, mais de chez moi quand l'execution passe sur cette ligne de code plus rien ne se fait et impossible de reprendre la main... je suis obliger de kill la tache pour relancer VB...

une idée du pourquoi comment?

* 2
par deception de ne pouvoir utiliser ce simple code je me sis lancer par les api de wininet.dll avec le code suivant:

Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
      ByVal sAgent As String, ByVal lAccessType As Long, _
      ByVal sProxyName As String, ByVal sProxyBypass As String, _
      ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" ( _
      ByVal hInternetSession As Long, ByVal sUrl As String, _
      ByVal sHeaders As String, ByVal lHeadersLength As Long, _
      ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" ( _
      ByVal hFile As Long, ByVal sBuffer As String, _
      ByVal lNumBytesToRead As Long, _
      lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" ( _
      ByVal hInet As Long) As Integer

Private Const INTERNET_FLAG_NO_CACHE_WRITE = &H4000000 ' Pas d'écriture en cache

Private lgSession As Long

Private Function GetUrlWininet(stUrl As String) As String
   ' Récupère le contenu d'une page/d'un fichier sur internet
   Dim lgInternet As Long , lgSession As Long
   Dim stBuf As String
   Dim inRes As Integer
   Dim lgRet As Long
   Dim stTotal As String

   stTotal = vbNullString
   ' Récupère un pointeur vers la connexion internet courante
   lgSession = InternetOpen("VBTagEdit", 1, vbNullString, vbNullString, 0)
   If lgSession Then
    ' Récupère un pointeur vers l'URL
    lgInternet = InternetOpenUrl(lgSession, stUrl, vbNullString, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0)
    
    stBuf = Space(1024)
    
    If lgInternet Then
        Do
            ' Lecture de la page dans le buffer (par bloc de 1024)
            inRes = InternetReadFile(lgInternet, stBuf, Len(stBuf), lgRet)
            stTotal = stTotal & Mid(stBuf, 1, lgRet)
        Loop While (lgRet = Len(stBuf))
    End If
    ' Libération du pointeur
    inRes = InternetCloseHandle(lgInternet)
End If
' Retourne le résultat
   GetUrlWininet= stTotal
End Function


ce code marche sans aucun problème de mon lieu de travail, mais de chez moi que une partie du flux html (environ 4000 characteres sur 7000 en tout) mais cela ne fait pas planter vb et permet de recuperer à la volé une succession de flux html mais ils sont incomplets... alors k'ils sont complet sur mon lieu de travail

une idée du pourquoi comment?

* 3
de plus en plus dessu j'ais pris des renseignement a propos de winsock et j'ais tester plusieur code chez moi uniquement sans que cela marche.... mais bon j'avoue etre un peut destabilisé pas cette dll et de toutes les fonctions qu'elle possede donc il est possible que je m'y souis pris comme un manche :)

* 4
une 4ieme solution serais de recuperer peut etre sous forme d'objet ma connection en cour que je vois dans le systray de chez moi mais la encore je ne sait absolument pas comment proceder....

------------------
en conclusion
je suis un peut perdu et surtout je ne comprend pas pourquoi des methodes simple à apliquer ne fonctionne pas ou pas entierrement chez moi (ce qui est le but)

si vous pouvez m'aider peut etre simplement en me mettant sur une piste... sur un lien... sur une experience similaire... ou pour que je vous considere comme un dieux en me donnant un code qui fonctionnera tout de suite ;)

merci d'avance
Nicolas

2 réponses

cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
25 juil. 2003 à 21:42
bizarre...
peut-etre que tes dlls chez toi sont "défectueuses" (bah oui c encore + bizarre). essaye de copier les dlls de ton lieu de travail chez toi pour avoir les memes.
sinon je peux pas vraiment t'aider...

Houzéf@ - www.123toto.com
0
cs_nicolas12 Messages postés 7 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 4 août 2003
26 juil. 2003 à 11:08
merci de ta réponse mais j'ais deja verifier et les dll et ocx et c'est les même en tous points ...
0
Rejoignez-nous