Page 1 sur 1

[R] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : lun. 23 mars 2009 05:23
par orax
:arrow: Edité : le problème est en partie résolu, j'envoie la requête avec TCPSend(), en "brute", et ça marche, mais j'aurais bien aimé pouvoir faire ça simplement avec un objet tel que WinHttpRequest par exemple.

- - - -

Bonjour, j'aimerais héberger une image sur site qui propose ce service, tel que imageshack ou autres...
Pour l'exemple j'utilise WinHttpRequest pour envoyer ma requête POST dans laquelle est contenu mon image.
Le problème est que mon image n'est pas envoyée correctement, il n'y a que les premiers octets (moins de 10 octets je pense) qui sont envoyés (j'ai vérifié avec Wireshark). Je ne vois vraiment pas ce que j'ai mal fait. :cry:

Merci de m'éclairer un peu si vous avez une idée.
► Afficher le textecode
Et voici ce que m'affiche Wireshark :
► Afficher le textecapture de trames

Re: [..] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : lun. 23 mars 2009 16:36
par Max5
En essayant le code avec l'objet "WinHttp.WinHttpRequest.5.1" j'obtient :
Bad Request
Bad Request
Your browser sent a request that this server could not understand.

Mais avec L'objet "Microsoft.XMLHTTP" c'est bon. ;)
En tout cas chez moi. ^^

J'ai remarquer par expérience que xmlhttp est préférable a winhttprequest. :)

Re: [..] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : lun. 23 mars 2009 17:17
par orax
Le Bad request c'est de ma faute, j'avais oublié d'enlever cette ligne mal formée

Code : Tout sélectionner

$obj.SetRequestHeader("Host", "Host: http://www.ptp-images.com")
Je vais tester "Microsoft.XMLHTTP". Merci !

- - - - - -

Au fait, rien avoir avec le sujet, et le problème est peut-être déjà connu : j'ai remarqué que quand je mets, par exemple, about:blank entre les balises "[ code ]" ça me donne ça :

Code : Tout sélectionner

about:blank

Re: [..] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : lun. 23 mars 2009 21:49
par orax
Avec Microsoft.XMLHTTP, j'ai le même problème, il ne m'envoie que les 10 premiers octets de l'image. Il semblerait que pour envoyer un fichier binaire avec Microsoft.XMLHTTP je doive faire autrement.

J'ai essayé d'envoyer une requête via TCPSend() pour être certain que le problème ne provienne pas d'une simple erreur de syntaxe, et là ça marche, même si ça ne résout pas pour autant mon problème avec Microsoft.XMLHTTP. Le code est ci-dessous, il permet de faire les 2 types d'envoie.
► Afficher le textecode

Re: [..] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : lun. 23 mars 2009 23:33
par orax
Finalement j'ai trouvé un script VBS qui fait ce que je demande à http://www.nowsms.com/download/sendmms.vbs.txt ; il est conçu pour envoyer des mms alors je l'ai un peu modifié. Par contre je trouve qu'il est bien compliqué pour le simple envoie d'un fichier binaire... je m'attendais à plus simple donc si quelqu'un a une autre solution je suis prenant.
► Afficher le textevbs

Re: [R] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : mar. 14 avr. 2009 19:24
par GaRydelaMer
Bonjour

j'ai apporté une solution à ton problème, tu la trouvera dans les exemples de script.
http://www.autoitscript.fr/forum/viewto ... f=6&t=2747

Chris.

Re: [R] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : mar. 14 avr. 2009 19:32
par orax
Oui en effet, je venais à l'instant de voir le message. Je n'ai pas encore testé mais ça me semble parfait. Merci :wink:

Juste une petite chose : (si j'ai bien compris la RFC) si la valeur de boundary (Const $BOUNDARY = '--ThIs_Is_tHe_bouNdaRY_$--') est présente dans le fichier, le transfert va échouer :P (...bon d'accord, il y a une chance sur 1 000 000 000... pour que ça arrive).

Re: [R] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : mer. 15 avr. 2009 09:15
par Artemis
Merci pour toutes vos réponses, j'ai du boulot :p

Artemis ;)

Re: [R] Problème pour envoyer un fichier - (Méthode HTTP POST)

Posté : mer. 15 avr. 2009 17:43
par GaRydelaMer
orax a écrit :Oui en effet, je venais à l'instant de voir le message. Je n'ai pas encore testé mais ça me semble parfait. Merci :wink:

Juste une petite chose : (si j'ai bien compris la RFC) si la valeur de boundary (Const $BOUNDARY = '--ThIs_Is_tHe_bouNdaRY_$--') est présente dans le fichier, le transfert va échouer :P (...bon d'accord, il y a une chance sur 1 000 000 000... pour que ça arrive).

Non pas vraiment puisque le fichier est codé en binaire tu auras jamais cette chaine la ;)