Functions > Network >


InetGet

Télécharge un fichier depuis internet en utilisant le protocole HTTP, HTTPS ou FTP.

InetGet ( "URL", "filename" [, options = 0 [, background = 0]] )

Paramètres

URL URL du fichier à télécharger. Voir Remarques ci-dessous.
filename Nom complet du fichier local dans lequel télécharger.
options [optionnel]     $INET_LOCALCACHE (0) = Obtient le fichier depuis le cache local si disponible (défaut).
    $INET_FORCERELOAD (1) = Force le rechargement depuis le site distant.
    $INET_IGNORESSL (2) = Ignore toutes les erreurs SSL (avec connexions HTTPS).
    $INET_ASCIITRANSFER (4) = Utilise ASCII lors du transfert de fichiers avec le protocole FTP (Ne peut pas être combiné avec le flag $INET_BINARYTRANSFER (8)).
    $INET_BINARYTRANSFER (8) = Utilise BINARY lors du transfert de fichiers avec le protocole FTP (Ne peut pas être combiné avec le flag $INET_ASCIITRANSFER (4)). Ceci est le mode de transfert par défaut si aucun n'est fourni.
    $INET_FORCEBYPASS (16) = Force la connexion en ligne par contournement (Voir Remarques).

Ces constantes sont définies dans InetConstants.au3
background [optionnel]
    $INET_DOWNLOADWAIT (0) = Attend que le téléchargement soit terminé avant de continuer (par défaut).
    $INET_DOWNLOADBACKGROUND (1) = Retourne immédiatement et télécharge en arrière-plan (Voir Remarques).

Les constantes sont définies dans InetConstants.au3

Valeur de retour

Succès: La valeur de retour change si le téléchargement est en arrière-plan ou pas:
Arrière-plan: Retourne un handle.
Attente: Retourne le nombre d'octets téléchargés.
Echec: Arrière-plan: Retourne un handle.
Attente: Retourne 0 et définit @error <> 0.

Remarques

Internet Explorer 3 ou plus récent doit être installé pour faire fonctionner cette fonction.

Utilisez le handle retourné par InetGetInfo() pour déterminer si il y a une erreur dans le téléchargement.
Le handle retourné doit être fermé avec InetClose().

Le paramètre URL devrait être de la forme "http://www.lesite.fr/chemin/fichier.html" - tout comme une adresse que vous tapez dans votre navigateur web.

Pour utiliser un nom d'utilisateur et un mot de passe lors de la connexion, préfixez simplement le nom de serveur avec "nomutilisateur:motdepasse@", c'est-à-dire:
"http://nomutilisateur:motdepasse@www.lesite.fr"


Notes à propos du paramètre "background"

Par défaut, la fonction attend que le téléchargement soit terminé avant d'envoyer la valeur de retour. Si le paramètre background est mis à $INET_DOWNLOADBACKGROUND (1), le retour de la fonction est immédiat et le téléchargement continue en arrière-plan. La fonction InetGetInfo() peut-être utilisée pour vérifier l'état du téléchargement. Elle utilise le handle retourné par InetGet().

Les téléchargements multiples sont supportés s'ils sont démarrés en mode arrière-plan.

Pour interrompre un téléchargement, appelez InetClose() en lui passant le handle retourné par InetGet().

Par défaut, AutoIt force une connexion avant de démarrer un téléchargement. Les utilisateurs de modem analogique seront invités à passer en ligne ou le numéro sera composé (selon la configuration du système). L'option $INET_FORCEBYPASS (16) désactive ce comportement. Désactiver ce comportement peut-être utile pour les connexions continues (Large bande, LAN). Cependant, il est aussi nécessaire pour résoudre certains problèmes dans Windows Vista et Windows 7.

En relation

FtpSetProxy, HttpSetProxy, HttpSetUserAgent, InetClose, InetGetInfo, InetGetSize, InetRead

Exemples

Exemple 1

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

; Télécharge un fichier en arrière-plan.
; Attend la fin du téléchargement.

Example()

Func Example()
    ; Enregistre le fichier téléchargé dans le dossier temporaire.
    Local $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Télécharge le fichier en arrière-plan avec l'option choisie 'forcer le chargement du site distant'.
    Local $hDownload = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)

    ; Attend la fin du téléchargement en vérifiant si la 2ième valeur de l'index de InetGetInfo retourne True.
    Do
        Sleep(250)
    Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)

    ; Obtient le nombre total d'octets reçus et la taille du fichier.
    Local $iBytesSize = InetGetInfo($hDownload, $INET_DOWNLOADREAD)
    Local $iFileSize = FileGetSize($sFilePath)

    ; Ferme le handle retourné par InetGet.
    InetClose($hDownload)

    ; Affiche les détails sur le nombre total d'octets lus et la taille du fichier.
    MsgBox($MB_SYSTEMMODAL, "", "Taille totale téléchargée: " & $iBytesSize & @CRLF & _
            "Taille du fichier: " & $iFileSize)

    ; Supprime le fichier.
    FileDelete($sFilePath)
EndFunc   ;==>Example


Exemple 2

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

; Télécharge un fichier en arrière-plan.
; Attend la fin du téléchargement.

Example()

Func Example()
    ; Enregistre le fichier téléchargé dans le dossier temporaire.
    Local $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Télécharge le fichier en attendant la fin. L'option "obtenir le fichier du cache local" est   choisie.
    Local $iBytesSize = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", $sFilePath, $INET_FORCERELOAD)

    ; Obtient la taille du fichier.
    Local $iFileSize = FileGetSize($sFilePath)

    ; Affiche les détails sur le nombre total d'octets lus et la taille du fichier.
    MsgBox($MB_SYSTEMMODAL, "", "Taille totale téléchargée: " & $iBytesSize & @CRLF & _
            "Taille du fichier: " & $iFileSize)

    ; Supprime le fichier.
    FileDelete($sFilePath)
EndFunc   ;==>Example