Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2011, 17h21   #1
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
Par défaut Aide à l'utilisation de WinHttpRequest

bonjour
Je dois récupérer un fichier par une requete HTTP

on m'a dit d'utiliser WinHttpRequest
Pour ce faire, j'ai référencé comme indiqué "Microsoft winhttp services 5.1" .

J'ai bcp de mal à comprendre comment fonctionne et comment on paramètre cet objet.

Qqun saurait-il me donner un exemple pas trop compliqué :-)

D'avance merci
Michel
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h43   #2
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
essai cette piste:
Sur le click d'un bouton
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim whrReq As WinHttp.WinHttpRequest
Set whrReq = New WinHttp.WinHttpRequest
With whrReq
       .Open "POST", strUrl, False  ' http://www.mon_site.................
       .send
              If .StatusText = "OK" Then
               msgbox .StatusText
 
	      Else
		  msgbox "Un problème est survenu;le serveur ne repond peut être pas.",vbexclamation,"mon_apli"
	     End if	
End with
Set whrReq = Nothing
TRES IMPORTANT:
pour l'utilisation de WinHttp,
- s'assurer que ton windows (xp pro ou +) est à jour
- utiliser un bon logiciel antivirus ou antispywares
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/02/2011, 12h03   #3
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
Par défaut J'ai presque compris... mais

Merci pour ta réponse qui m'éclaire (en partie)

puis-je abuser ?

L'URL du fichier "index.txt" que je dois "lire" est de ce style :
strurl = "http://domino.XXX.XXX.fr:55228/Desk/index.txt"

(et quand je colle cette URL dans mon navigateur le contenu du fichier s'affiche bien ---> j'en conclue donc que le serveur est joignable)

j'ai donc écrit ceci sur le modèle que tu m'as fourni (dans ACCESS 2002 SP3):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function Scan()
Dim strurl As String
Dim whrReq As WinHttp.WinHttpRequest
 
strurl = "http://domino.XXX.XXX.fr:55228/Desk/index.txt"
 
Set whrReq = New WinHttp.WinHttpRequest
With whrReq
.Open "POST", strurl, False '
.Send
If .StatusText = "OK" Then
MsgBox .StatusText
Else
MsgBox "Un problème est survenu;le serveur ne repond peut être pas.", vbExclamation, "mon_apli"
End If
End With
Set whrReq = Nothing
End Function
Et j'ai systématiquement à l'execution : "Un probleme est survenu, le serveur ne répond peut être pas". OR le serveur semble joignable (avec le navigateur internet)

D'autre part, je ne comprends pas comment je peux récupérer (si j'arrive à ne plus avoir l'erreur ci-dessus) le contenu du fichier texte demandé

J'ai toutefois essayé avec un "GET" à la Place du "POST" et là j'obtiens un StatusText "Ok" ... mais comment récupérer le contenu de ce fichier texte ?

Merci de ton aide
Michel
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 20h29   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Le contenu devrait se trouver dans le membre ResponseText de l'objet WinHttpRequest.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 17h42   #5
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
Citation:
Le contenu devrait se trouver dans le membre ResponseText de l'objet WinHttpRequest.
c'est bien cela LedZeppII; j'ai pensé qu'il avait besoin juste d'une piste.
Et comme nous n'avons pas droit à son url, j'ai mis un fichier txt sur sur un site que je suis en train de créer dont le lien est dans le code çi dessous:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function EssaiWinHTTP()
    Dim whrReq As WinHttp.WinHttpRequest, strUrl As String
    Set whrReq = New WinHttp.WinHttpRequest
    strUrl = "http://domino.XXX.XXX.fr:55228/Desk/index.txt"
    With whrReq
        .Open "GET", strUrl, False
        .send
            If .Status = 200 Then
                Me.txtMessage = whrReq.ResponseText
                Else
                    MsgBox whrReq.Status
            End If      
    End With
    Set whrReq = Nothing
End Function
1/ Tu crées un form, une zone de texte (txtmessage dans mon code) et un bouton.
2/ s'il y a lieu de s'identifier sur ton site, c'est dans ton url que tu la mettras (Login et password).
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
Private Function AutentificationAvecWinHTTP()
    Dim whrReq As WinHttp.WinHttpRequest, strUrl As String
    Set whrReq = New WinHttp.WinHttpRequest
    Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
    Const HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1
 
    strUrl = "http://domino.XXX.XXX.fr:55228/Desk/index.txt"
    ' Assemble une requête HTTP.
    whrReq.Open "GET", strUrl, False
    whrReq.SetCredentials Me.txtLogin, Me.txtMotDePasse, HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
    ' whrReq.SetCredentials Me.txtLogin, Me.txtMotDePasse, HTTPREQUEST_SETCREDENTIALS_FOR_PROXY
    whrReq.Send
    msgbox whrReq.Status & "  " & whrReq.StatusText
    ' Teste le statut du code retourné par le serveur.
    Select Case whrReq.Status
        Case 200    ' Document retrouvé; la requete a aboutit
            Me.txtMessage = whrReq.ResponseText
        Case 401    ' Le serveur demande une authentication
            MsgBox "Erreur d'authentification (serveur)." & vbCrLf & "Revoir le login et/ou le mot de passe.", vbExclamation, "Mon appli"
            Exit Function
        Case 407  ' Demande d'identification par le proxy
            MsgBox "Erreur d'authentification (proxy)." & vbCrLf & "Revoir le login et/ou le mot de passe.", vbExclamation, "Mon appli"
            Exit Function
    End Select
End Function
3/ C'est le retour donné par msgbox whrReq.Status & " " & whrReq.StatusText qui nous permettra de choisir entre les 2 constantes:
Const HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
ou
Const HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1

Une fois le code retour connu, tu pourras effacer la ligne du msgnox

j 'espère que ça va marcher.
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 16h20   #6
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 261
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : février 2008
Messages : 261
Points : 304
Points : 304
Par défaut Merci à tous !

Merci, grace à vos expli m'en suis sorti avec :

StrURL = "http://XXX.XXX.XXX.fr:XXXX/Desk/" & Nom_Fichier

Set whrReq = New WinHttp.WinHttpRequest
With whrReq
.Open "GET", StrURL, False ' http://www.mon_site.................
.Send

If .StatusText = "OK" Then
Texte = .ResponseText
Else
etc.

Super vos contributions !
Michel
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h41.


 
 
 
 
Partenaires

Hébergement Web