Problème avec Internet Transfer

Résolu
DjAdes Messages postés 38 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 6 juillet 2011 - 7 sept. 2004 à 17:30
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 10 sept. 2004 à 21:12
Bonjour à tous,
Je voudrais simplement récupérer le code html du page. Pour ce faire j'utilise le contrôle Internet Transfer avec la méthode OpenURL. Je sais que je dois lui fournir une adresse comme paramètre. C'est à ce moment que ça bloque, je voudrais envoyer comme paramètre une adresse ip :
INet.OpenURL("http:\\128.255.128.255")
J'ai même essayé cet exemple sans http, mais sans succès.

J'aimerais également, si cela est possible, me connecter à un port spécifique comme on le ferait dans Internet Explorer :
http:\\128.255.128.255:8000
Est-ce possible avec le contrôle INet ? J'ai remarqué qu'il existait une propriété nommée Port, suis-je sur la bonne voie ?

Merci pour vos nombreuses réponses ... ;)
à bientôt,
Seb.

6 réponses

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
7 sept. 2004 à 18:02
Essaie ceci (vb6) :

ça enleve une dependance et marche avec la redirection de port

Public Const INTERNET_OPEN_TYPE_PRECONFIG  As Long = 0
Public Const INTERNET_OPEN_TYPE_DIRECT     As Long = 1
Public Const INTERNET_OPEN_TYPE_PROXY      As Long = 3
Public Const HTTP_QUERY_CONTENT_LENGTH     As Long = 5
Public Const INTERNET_FLAG_RELOAD          As Long = &H80000000

Public 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
Public Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" (ByVal 

hHttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, ByRef 

lBufferLength As Long, ByRef lIndex As Long) As Integer
Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" 

(ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength 

As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" 

(ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, 

ByVal sVersion As String, ByVal sReferer As String, ByVal something As Long, ByVal 

lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" 

(ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, 

sOptional As Any, ByVal lOptionalLength As Long) As Integer
Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, 

ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) 

As Integer
Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) 

As Integer
Public Declare Function InternetQueryDataAvailable Lib "wininet.dll" (ByVal hFile As 

Long, lpdwNumberOfBytesAvailable As Long, ByVal dwFlags As Long, ByVal dwContext As 

Long) As Long

Function HttpReadPage(ByVal Url As String) As String
    Dim vBuff  As String
    Dim vhOpen As Long
    Dim vhUrl  As Long
    Dim vSize  As Long
    Dim vRet   As Long
    vhOpen = InternetOpen("Mozilla/4.0", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, 

vbNullString, 0)
    If vhOpen Then
        vhUrl = InternetOpenUrl(vhOpen, Url, vbNullString, 0, INTERNET_FLAG_RELOAD, 

0)
        If vhUrl Then
            If InternetQueryDataAvailable(vhUrl, vSize, 0, 0) Then                If (vSize 0) Then vSize 4096
                vBuff = String(vSize, 0)
                Do
                    InternetReadFile vhUrl, vBuff, vSize, vRet
                    If (vRet = 0) Then Exit Do
                    HttpReadPage = HttpReadPage & Left$(vBuff, vRet)
                Loop
            End If
            InternetCloseHandle vhUrl
        End If
        InternetCloseHandle vhOpen
    End If
End Function


@+

E.B.
3
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
7 sept. 2004 à 18:06
A oui j'oubliais de repondre precisement a ta question
(je sait que certains me le reproche) :

Utilise les propriétés :

- RemoteHost (pour l'ip 127.0.0.1)
- RemotePort (pour le port 80)

@+

E.B.
0
DjAdes Messages postés 38 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 6 juillet 2011
8 sept. 2004 à 10:40
Tout d'abord, merci pour tes réponses.
Après mûre réflexion, quelques questions me passent par l'esprit :
1) Qu'est ce qu'une dépendance ?
2) Où dois-je indiquer le port dans ta fonction HttpReadPage(...) ? Serait-ce de cette manière : strMaPage = HttpReadPage("http:\\255.128.255.128:8000") ?
3) Dois-je utiliser les propriétés (appartenant à Internet Transfer ?!?) que tu m'as indiqué dans ton dernier message ? Si oui, quelle méthode dois-je utiliser après (je suppose que ce n'est pas OpenURL)? En fait, je ne vois pas bien le rapport entre tes deux messages ... :blush)
4) J'ai vu que l'API utilisait la dll "Wininet.dll", est-ce en rapport avec le composant Internet Transfer ?

Désolé pour toutes ces questions, je suis un peu débutant et autodidacte dans cette matière.

Encore merci,
bye,
Seb.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
8 sept. 2004 à 22:38
( 1 ) Une dependance est un fichier que l'on doit se trimballer partout pour faire fonctionner notre prog final (dll,ocx,drv etc...)
par principe moins on en a mieu on ce porte (tout le monde ne partage pas cet avis)

( 2 ) Tu as trouvé tout seul commetn indiquer le port
http://domaine:port/page

( 3 ) Tu peut utiliser les propriétés pour ce qui est de la methode..euh bah j'en ai aucune idée :-p (je sais que c'est
cette reponse qui t'aurais le plus arrangé mais je ne l'ai pas...
cela dit je cherche !)

( 4 ) Pas de rapport direct

@+

E.B.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DjAdes Messages postés 38 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 6 juillet 2011
10 sept. 2004 à 20:56
Merci beaucoup cher E.B. pour toutes ces informations. Je viens à l'instant d'essayer ta fonction HttpReadPage et tout fonctionne comme je le voulais.

Encore merci pour ton aide, j'espère que je pourrai te rendre la pareille un jour,
Bonne fin de journée à toi,
Seb.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
10 sept. 2004 à 21:12
Merci.

E.B.
0
Rejoignez-nous