[..] Les requêtes en AutoIt
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
[..] Les requêtes en AutoIt
Bonjour,
je fais assez souvent des macros pour le navigateur Internet explorer.
Malheureusement, c'est lent et IE peut planter et il n'est pas présent sur tous les pc.
Donc je veux me mettre aux requêtes pour palier à ce problème.
Je n'ai pas trouvé de documentation pour comment faire des requêtes http, avec un get, un post...
Donc pour récupérer une page Internet, envoyer des formulaires...
Merci beaucoup !
Ps: ne me parlez pas d'Inetget :p
je fais assez souvent des macros pour le navigateur Internet explorer.
Malheureusement, c'est lent et IE peut planter et il n'est pas présent sur tous les pc.
Donc je veux me mettre aux requêtes pour palier à ce problème.
Je n'ai pas trouvé de documentation pour comment faire des requêtes http, avec un get, un post...
Donc pour récupérer une page Internet, envoyer des formulaires...
Merci beaucoup !
Ps: ne me parlez pas d'Inetget :p
- PandiPanda
- Membre émérite
- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] les requêtes en autoit
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [..] les requêtes en autoit
Mercimais ce n'est pas cela que je cherchais :
Je voulais connaître les noms de fonction en Autoit et comment les utiliser en donnant des exemples.
Tu me donnes de la doc sur le protocole http en général mais je voulais de la doc sur comment utiliser les requêtes en autoit, mais merci quand même
Je voulais connaître les noms de fonction en Autoit et comment les utiliser en donnant des exemples.
Tu me donnes de la doc sur le protocole http en général mais je voulais de la doc sur comment utiliser les requêtes en autoit, mais merci quand même

- PandiPanda
- Membre émérite
- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] les requêtes en autoit
Oui, mais sans connaitre le protocole HTTP, vous n'irez pas loin dans les requêtes ^^
et vous avez le choix pour les "fonctions utiles":
- Soit la famille des TCPXXX
- soit avec ObjCreate("winhttp.winhttprequest.5.1"), et il faudra regarder la documentation
Si vous ne voulez que récuperer le code source d'une page, il est plus simple d'utiliser _INetGetSource()
ou encore un bout de script comme celui ci;
et vous avez le choix pour les "fonctions utiles":
- Soit la famille des TCPXXX
- soit avec ObjCreate("winhttp.winhttprequest.5.1"), et il faudra regarder la documentation
Si vous ne voulez que récuperer le code source d'une page, il est plus simple d'utiliser _INetGetSource()
ou encore un bout de script comme celui ci;
Code : Tout sélectionner
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://www.AutoItScript.com")
$oHTTP.Send()
$HTMLSource = $oHTTP.Responsetext
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [..] les requêtes en autoit
La documentation microsoft ? J'en suis allergique ! 
Ton exemple me semble tiré de l'introduction au protocole http qu'on trouve sur la doc d'autoitscript.
Tu peux me faire des exemples où tu envoies des données en post et en get ?
Merci

Ton exemple me semble tiré de l'introduction au protocole http qu'on trouve sur la doc d'autoitscript.
Tu peux me faire des exemples où tu envoies des données en post et en get ?
Merci
- PandiPanda
- Membre émérite
- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] les requêtes en autoit
J'ai pas trop d'idée actuellement, mais je sais que matwachich à fait de l'excellent boulot sur le TCP ^^
Il à créer divers udf, ici et ici et ici , les exemple fournit, son divers et riche ^^
Et des exemples plus spécifique;
- Envoi de fichier via POST
- ... vous ferez une petite recherche sur le fofo :p
Il à créer divers udf, ici et ici et ici , les exemple fournit, son divers et riche ^^
Et des exemples plus spécifique;
- Envoi de fichier via POST
- ... vous ferez une petite recherche sur le fofo :p
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [..] les requêtes en autoit
Est-ce qu'il existe un tutoriel en anglais ou pas, qui apprenne à utiliser simplement les requêtes en montrant comment récupérer une page web et comment envoyer du post ou du get avec un exemple sur un site réel.
Merci
Merci

- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
Par exemple ceci ?
Pour tous les détails côté protocole, voir MSDN. T'es allergique à quoi exactement ?
Pour tous les détails côté protocole, voir MSDN. T'es allergique à quoi exactement ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- matwachich
- Membre émérite
- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
Mais attention:
Dans les UDF (SimpleTCP et TCPClass), le client ne peut communiquer qu'avec son serveur, ou le serveur de l'autre UDF:
Exemple:
Un client créé avec SimpleTCP ne pourra communiqué qu'avec un serveur créé avec SimpleTCP ou TCPClass.
Cela vient du fait que les messages envoyés sont entourés de "balises" (Chr(2) et Chr(3)) pour permettre la réception des données en entier, exactement comme elle on été envoyées!.
Donc, il n'est pas possible d'utiliser mes UDF avec un serveur HTTP.
Par contre, je conseil plutôt d'étudier ma fonction _INetGetX(), c'est une fonction qui télécharge un fichier depuis un serveur web sans utiliser INetXXX, que des bon vieux TCPXXX, et donc, on peut voire une requête GET en action!
PS: En plus, cette fonction est plus performante que INetGet car elle supporte la reprise de téléchargement!!!
Edit: Je conseil vivement d'utiliser SimpleTCP, car:
- Il ne dépend pas de AutoItObject
- Il est mieux maintenu, car j'ai abandonné TCPClass
TCPClass reste un bon exemple pour quoi veut faire de la POO
Dans les UDF (SimpleTCP et TCPClass), le client ne peut communiquer qu'avec son serveur, ou le serveur de l'autre UDF:
Exemple:
Un client créé avec SimpleTCP ne pourra communiqué qu'avec un serveur créé avec SimpleTCP ou TCPClass.
Cela vient du fait que les messages envoyés sont entourés de "balises" (Chr(2) et Chr(3)) pour permettre la réception des données en entier, exactement comme elle on été envoyées!.
Donc, il n'est pas possible d'utiliser mes UDF avec un serveur HTTP.
Par contre, je conseil plutôt d'étudier ma fonction _INetGetX(), c'est une fonction qui télécharge un fichier depuis un serveur web sans utiliser INetXXX, que des bon vieux TCPXXX, et donc, on peut voire une requête GET en action!
PS: En plus, cette fonction est plus performante que INetGet car elle supporte la reprise de téléchargement!!!

Edit: Je conseil vivement d'utiliser SimpleTCP, car:
- Il ne dépend pas de AutoItObject
- Il est mieux maintenu, car j'ai abandonné TCPClass
TCPClass reste un bon exemple pour quoi veut faire de la POO
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
Oui, merci, j'ai regardé tes UDF et en effet, c'est une communication avec un serveur qui n'est pas utile dans mon cas.
Toutefois, je vais regarder ta fonction _INetGetX() qui à l'air bien intéressante.
Je trouve ça dommage que les requêtes ne soien t pas à portée de tous !
Dans la majeur partie des cas, sauf si on a pas besoin de vitesse, utiliser le navigateur est abérrant !
On devrait mettre en avant les requêtes et les expliquer.
Le mieux serait de faire un tuto mais je n'en ai pas les compétences.
merci à vous, je vous tiens au courant !
EDIT : à propos de InetGetx() : est-ce que est pareil que ?
et :
la doc dit :
quelle est la différence entre une "expression" et une "chaine" ?
Si une expression, c'est par exemple le chiffre 9 et une chaine, le chiffre 9 dans une phrase ("9"), alors string() est pareil que "" ?
alors dans ce cas, pourquoi vérifier si ?
La ligne me chiffone : la fonction StringLeft() permet de garder qu'un nombre définit de caractères dans une chaine. StringInStr() permet de renvoyer la position de la chaine trouvée mais :
-s'il n'y a pas de "/" à la fin, la chaine va être coupée au milieu, non ?
Brr, je croyais que ton UDF n'utilisait pas IE, à moins que je ne me trompe, InetGetsize() utilise internet explorer. Pas moyen de faire avec une requête ?
Désolé pour toutes ces questions
Toutefois, je vais regarder ta fonction _INetGetX() qui à l'air bien intéressante.
Je trouve ça dommage que les requêtes ne soien t pas à portée de tous !
Dans la majeur partie des cas, sauf si on a pas besoin de vitesse, utiliser le navigateur est abérrant !
On devrait mettre en avant les requêtes et les expliquer.
Le mieux serait de faire un tuto mais je n'en ai pas les compétences.
merci à vous, je vous tiens au courant !

EDIT : à propos de InetGetx() : est-ce que
Code : Tout sélectionner
FOR $element IN $aArray
$string = $string & $element & @CRLF
NEXT
Code : Tout sélectionner
FOR $element TO Ubound($aArray) -1
$string = $string & $element & @CRLF
NEXT
Code : Tout sélectionner
If String($sHost) <> $sHost
Code : Tout sélectionner
An expression to convert into a string.
Si une expression, c'est par exemple le chiffre 9 et une chaine, le chiffre 9 dans une phrase ("9"), alors string() est pareil que "" ?
alors dans ce cas, pourquoi vérifier si
Code : Tout sélectionner
String($sHost) <> $sHost
Code : Tout sélectionner
Func _Url_To_Host($url)
Local $ret[2]
$url = StringReplace($url, 'http://', '')
$ret[0] = StringLeft($url, StringInStr($url, '/') - 1)
$ret[1] = StringTrimLeft($url, StringInStr($url, '/'))
Return $ret
EndFunc
Code : Tout sélectionner
$ret[0] = StringLeft($url, StringInStr($url, '/') - 1)
-s'il n'y a pas de "/" à la fin, la chaine va être coupée au milieu, non ?
Code : Tout sélectionner
$iSize = InetGetSize("http://" & $sHost & "/" & $sRessource, 1)
Désolé pour toutes ces questions

- matwachich
- Membre émérite
- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
Je vous répond ici
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
J'y ai répondu 

- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
Euh, tu peux me dire pourquoi l'UDF WinHTTP.au3 ne te va pas ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [..] Les requêtes en AutoIt
Je n'ai jamais dit qu'il n'allait pas !
On ne m'a proposé que l'aide msdn en utilisant direct la dll.
Merci, je vais jeter un coup d'oeil mais si quelqu'un pourrait me faire quelques exemples.
Par exemple, quelqu'un peut faire en requêtes un truc qui se connecte à autoitscript.fr (donc qui récupère le cookie) ?
C'est juste une idée, donnez-moi les exemples que vou voulez, merci !
EDIT: http://www.autoitscript.com/forum/topic ... functions/
Ps: votre UDF m'a l'air pas mal ! http://winhttp.origo.ethz.ch/wiki/documentation
On ne m'a proposé que l'aide msdn en utilisant direct la dll.
Par exemple, quelqu'un peut faire en requêtes un truc qui se connecte à autoitscript.fr (donc qui récupère le cookie) ?
C'est juste une idée, donnez-moi les exemples que vou voulez, merci !
EDIT: http://www.autoitscript.com/forum/topic ... functions/
Ps: votre UDF m'a l'air pas mal ! http://winhttp.origo.ethz.ch/wiki/documentation