Bonjour,
Vous ne me connaissez pas mais vous connaissez peut-être déjà mon logiciel que je développe fièrement, entièrement en AutoIT : LinuxLive USB Creator
Je poste sur ce forum en espérant trouver quelques réponses à mes nombreuses questions car même si je code beaucoup en AutoIT je ne suis qu'un amateur.
Ces derniers temps je cherche à voir comment je pourrais rendre LiLi USB Creator complétement compatible avec l'usage d'un proxy. En effet, 90% du logiciel marche déjà avec un proxy mais je ne sais pas comment faire pour les 10 derniers pourcent.
Ces 10 derniers pourcent correspondent en fait à l'utilisation de _InetGetSource et de WinHTTP.au3.
[*]InetgetSource permet à LiLi de vérifier s'il existe une mise à jour (en récupérant le résultat d'un script php)
[*]WinHTTP permet quand à lui d'envoyer des rapports de plantages en méthode POST (trop gros pour un GET) à une page PHP.
Le but étant de pouvoir utiliser les mêmes modes de proxy que ceux fournis dans AutoIT à savoir : pas de proxy, même proxy que IE ou proxy rentré manuellement.
Si vous avez des exemples ou des idées je suis preneur.
Je suis aussi intéressé par des gens compétents qui souhaiteraient rejoindre le projet.
LiLi USB Creator est un projet open-source et les sources sont fournies/compilables facilement dans chaque version.
Bonne journée à tous,
Thibaut
[..] Proxy sur _InetGetSource ou WinHTTP
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.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Proxy sur _InetGetSource ou WinHTTP
Bienvenu parmi nous Thibaut.
http://www.autoitscript.fr/forum/viewto ... 949#p28949
http://www.autoitscript.fr/forum/viewto ... 949#p28949
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: Proxy sur _InetGetSource ou WinHTTP
Salut à toi:
Pour essayer de te repondre, tu connais bien sur
_INetGetSource() est a proscrire, utilise plutot InetRead, qui devrait gerer le proxy
Concernant le Post, je ne connais pas WinHTTP, j'utilise par contre le code suivant, que tu peux tester et qui résoudra peut etre ton problème:
Les fonctions _HTTPConnect, _HTTPPost, et _HTTPRead sont disponibles ici : http://malossane.fr/usb-online-sources.html
Y'a même une fonction plus complexe _HTTPPost_files pour envoyer par POST un fichier complet de log ou autre.
Si le proxy défini par HttpSetProxy n'est pas utilisé, il faudra le rajouter dans notre requete POST, mais la je retourne au travail je regarderai ce soir, faut aller dans les definitions du HTTP 1.1 voir comment ca marche.
Pour essayer de te repondre, tu connais bien sur
Code : Tout sélectionner
HttpSetProxy ( mode [, "proxy:port" [, "username" [, "password"]]] )
Concernant le Post, je ne connais pas WinHTTP, j'utilise par contre le code suivant, que tu peux tester et qui résoudra peut etre ton problème:
Code : Tout sélectionner
Func _ask_servor_id($login, $PassWord)
Local $deepmemo_host = "malossane.fr"
Local $add_path = "/membres-connexion.html" ; ICI tu mets ton php, malgré le .html c'est bien une page php qui est appelée (redirection)
Local $data = "nom_utilisateur=" & ($login) & "&mot_de_passe=" & ($PassWord) & "&connexion_auto=on&submit=Connectez-moi+!&uniqid=formulaire_connexion"
Local $socket = _HTTPConnect($deepmemo_host)
HttpSetUserAgent("autoit")
_HTTPPost($deepmemo_host, $add_path, $socket, $data)
$response = _HTTPRead($socket, 0)
Return $response
EndFunc ;==>_ask_servor_idY'a même une fonction plus complexe _HTTPPost_files pour envoyer par POST un fichier complet de log ou autre.
Si le proxy défini par HttpSetProxy n'est pas utilisé, il faudra le rajouter dans notre requete POST, mais la je retourne au travail je regarderai ce soir, faut aller dans les definitions du HTTP 1.1 voir comment ca marche.
Re: [..] Proxy sur _InetGetSource ou WinHTTP
Merci beaucoup pour les réponses.
Je peux effectivement utiliser InetGet et ensuite lire le fichier temporaires pour avoir la réponse. Je sais pas pourquoi mais je pensais qu'InetGet n'était pas capable de récupérer un page Web mais seulement un vrai fichier
Tes fonctions HTTP m'ont l'air vraiment bien (et plus facile à utiliser que celles que j'utilisent moi !). Par contre je ne suis pas sûr d'avoir compris. Pour se connecter, elles utilisent les mêmes paramètres que ceux du logiciel (ceux mis avec HTTPSetProxy) ou pas ?
Pas mal la Malossane USB Suite au passage !
Tlem > héhé, chui une star du web
Je peux effectivement utiliser InetGet et ensuite lire le fichier temporaires pour avoir la réponse. Je sais pas pourquoi mais je pensais qu'InetGet n'était pas capable de récupérer un page Web mais seulement un vrai fichier
Tes fonctions HTTP m'ont l'air vraiment bien (et plus facile à utiliser que celles que j'utilisent moi !). Par contre je ne suis pas sûr d'avoir compris. Pour se connecter, elles utilisent les mêmes paramètres que ceux du logiciel (ceux mis avec HTTPSetProxy) ou pas ?
Pas mal la Malossane USB Suite au passage !
Tlem > héhé, chui une star du web
Re: [..] Proxy sur _InetGetSource ou WinHTTP
Je comprends pas j'avais fait une tres longue réponse hier soir je croyais avoir poster la réponse hier soir mais apparemment c'est pas passé, donc je disais concernant WinHttp (mais je vais le faire plus concis, ca m'a saoulé), avec tes fonctions ca doit passer en rajoutant
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-Alive")
Je pense que ca devrait suffire.
Avec mes fonctions, il faut rajouter la ligne suivante dans la fonction _HTTPPost et _HTTPGet et _HTTPPostFiles (si tu a s besoin des 3):
Normalement, ce bout devrait suffire à utiliser le Proxy défini par défaut.
J'ai utilisé un analyseur de traffic, et quand je coche "Utiliser Proxy dans IE", c'est cette ligne la qui est rajoutée dans le header des requetes HTTP 1.1, donc je présume que ca marchera , mais je n'ai pas tester n'ayant pas de proxy à disposition cette semaine.
Concernant InetGet, vous pouvez comme je l'ai ecris, si vous utilisez la dernière version Autoit (ce que je vous conseille), utiliser InetRead qui fait exactement la même chose que votre ancienne fonction,(Donne directement la source sans passer par un fichier temporaire) sauf qu'elle est inclue dans Autoit3.exe et gère de base de Proxy mis avec la fonction HTTPSetProxy. Et oui Inetget s'utilise sur n'importe quoi :p
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-Alive")
Code : Tout sélectionner
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", 'http://votre_site.fr')
$oHTTP.SetRequestHeader("Referer", "http://malossane.fr")
$oHTTP.SetRequestHeader("Proxy-Connection", "Keep-alive")
$oHTTP.SetRequestHeader("Accept-Language", "fr")
Avec mes fonctions, il faut rajouter la ligne suivante dans la fonction _HTTPPost et _HTTPGet et _HTTPPostFiles (si tu a s besoin des 3):
Code : Tout sélectionner
$command &= "Proxy-Connection: ""Keep-Alive"&@CRLF
J'ai utilisé un analyseur de traffic, et quand je coche "Utiliser Proxy dans IE", c'est cette ligne la qui est rajoutée dans le header des requetes HTTP 1.1, donc je présume que ca marchera , mais je n'ai pas tester n'ayant pas de proxy à disposition cette semaine.
Concernant InetGet, vous pouvez comme je l'ai ecris, si vous utilisez la dernière version Autoit (ce que je vous conseille), utiliser InetRead qui fait exactement la même chose que votre ancienne fonction,(Donne directement la source sans passer par un fichier temporaire) sauf qu'elle est inclue dans Autoit3.exe et gère de base de Proxy mis avec la fonction HTTPSetProxy. Et oui Inetget s'utilise sur n'importe quoi :p
Re: [..] Proxy sur _InetGetSource ou WinHTTP
C 'est cool j'apprends pleins de choses !
Je n'avais jamais fait gaffe que InetRead renvoyait le résultat, comme c'était du charabia en plus ...
Pour les autres fonctions il va falloir que je creuse un peu plus la question car mon logiciel implémente les 3 modes de HttpSetProxy or il y a un mode où l'utilisateur rentre le proxy manuellement. Il y a donc forcément d'autres paramètres à passer.
Je n'avais jamais fait gaffe que InetRead renvoyait le résultat, comme c'était du charabia en plus ...
Pour les autres fonctions il va falloir que je creuse un peu plus la question car mon logiciel implémente les 3 modes de HttpSetProxy or il y a un mode où l'utilisateur rentre le proxy manuellement. Il y a donc forcément d'autres paramètres à passer.


