Page 1 sur 1

Télécharger un fichier ZIP avec winhttp

Posté : mer. 29 mai 2019 16:23
par Utilisateur 3309 supprimé
Bonjour,

j'ai écris une API web en php/mysql qui renvoie un fichier ZIP lorsqu'on fait une requete GET de ce type:
www.monsite.com/dossier/?user=kiki
avec dans la requete un Header:

Code : Tout sélectionner

Authorization: xxxxxxxxxxxxxxxxxxxx
J'ai donc fait le le programme suivant :

Code : Tout sélectionner

#include "WinHttp.au3"

$hOpen = _WinHttpOpen()
$hConnect = _WinHttpConnect($hOpen, "www.monsite.com")
$hRequest = _WinHttpOpenRequest($hConnect, 'GET', "/dossier/?user=kiki", Default, "http://www.monsite.com/", Default, $WINHTTP_FLAG_SECURE)
_WinHttpAddRequestHeaders($hRequest, "Authorization: xxxxxxxxxxxxxxxxxxxx")
_WinHttpSendRequest($hRequest, Default)

; Wait for the response
_WinHttpReceiveResponse($hRequest)
If @error Then
    MsgBox(48, "Error", "Error waiting for the response from the server.")
    _WinHttpCloseHandle($hRequest)
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)
    Exit 5
EndIf

; See if there is data to read
Global $sChunk, $sData
If _WinHttpQueryDataAvailable($hRequest) Then
    ; Read
    While 1
        $sChunk = _WinHttpReadData($hRequest)
        If @error Then ExitLoop
        $sData &= $sChunk
    WEnd
	; Enregistrement fichier ZIP
	$hFile = FileOpen(@ScriptDir & "\files.zip", 18)
	FileWrite($hFile, $sData)
	FileClose($hFile)
Else
    MsgBox(48, "Error", "Site is experiencing problems.")
EndIf

; Close handles
_WinHttpCloseHandle($hRequest)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
Sur mon serveur Web je vois bien les logs de la requete, et le zip a bien été envoyé, mais sur le PC le fichier ZIP reçu est corrompu, il ne fait que 3Ko au lieu de 100ko
Quelqu'un voit ou est mon erreur ?? il y a visiblement un souci dans ma façon d'enregister les données recues, dans la partie "Enregistrement fichier ZIP"

Merci pour votre aide.

Re: Télécharger un fichier ZIP avec winhttp

Posté : lun. 03 juin 2019 16:20
par Wiltech
Déjà à tu vérifiais que ton pare-feu bloque le téléchargement ou même ton antivirus.

Ensuite je crois pas qu'on peut mettre des données dès un fichier zip avec un fileWrite, car le fileWrite écrit sur le fichier ouvert alors que la tu lui demandes d’écrire sur un fichier zip qui n'est pas fait pour ça, ouvre ton fichier télécharger avec un bloc note je suis sûr que du texte clair va apparaître.

Que veux-tu récupérer précisément un ensemble de fichier ou du texte ?

Re: Télécharger un fichier ZIP avec winhttp

Posté : lun. 03 juin 2019 19:03
par mikell
Réponse à ce sujet déjà donnée sur le forum US

Sorry , c'est ma faute, j'ai oublié de coller un avertissement à cetipabo pour motif de double post. Mais j'y penserai la prochaine fois, et d'autant plus qu'il n'a même pas pris la peine de marquer ici le sujet comme résolu en fournissant le lien ci-dessus

Re: Télécharger un fichier ZIP avec winhttp

Posté : mar. 04 juin 2019 08:19
par Wiltech
Pas de problème j'aurais essayer :D

Re: Télécharger un fichier ZIP avec winhttp

Posté : mar. 04 juin 2019 09:37
par Tlem
mikell a écrit : lun. 03 juin 2019 19:03 Réponse à ce sujet déjà donnée sur le forum US

Sorry , c'est ma faute, j'ai oublié de coller un avertissement à cetipabo pour motif de double post. Mais j'y penserai la prochaine fois, et d'autant plus qu'il n'a même pas pris la peine de marquer ici le sujet comme résolu en fournissant le lien ci-dessus

Après 8 années et 260 messages, c'est impardonnable de sa part !
Un tel manque de correction mérite sanction.

Re: Télécharger un fichier ZIP avec winhttp

Posté : mar. 04 juin 2019 09:53
par Wiltech
L’erreur est humaine c'est pas grave :D

Re: Télécharger un fichier ZIP avec winhttp

Posté : mar. 04 juin 2019 10:26
par Tlem
Certes, mais sans un minimum de rigueur et de règles, l'humain à tendance à faire n'importe quoi ...
Et puis, ce n'est qu'un avertissement. ^^

Re: Télécharger un fichier ZIP avec winhttp

Posté : mer. 05 juin 2019 08:31
par Utilisateur 3309 supprimé
Bonjour,
j'ai posé ma question avant de partir en vacances pour la semaine de l'ascension, ne voyant pas de arriver de réponse ici j'ai posté sur le forum US, ou le probleme a été rapidement résolu. Entre temps j'étais en congès loin de mon PC. Aujourd'hui je reprends le boulot et reviens pour mettre a jour mon post avec la solution à mon problème et je vois que vous vous êtes tous enflammés...Sérieusement vous allez bien là ??

Avertissement pour double post ? sur 2 forums differents ? celle la c'est la meilleure. Ce que je fais hors de ce forum ne vous concerne pas meme si des membres d'ici sont sont aussi sur le forum US. Sanctionner quelqu'un parce qu'il a posté sa demande aussi sur un autre forum c'est complètement débile.

Concernant mon retour tardif, c'est parce que j'étais en congès et que je ne reviens que maintenant.

Donc non seulement je n'ai eu aucune réponse a mon problème ici et en plus je me fais sanctionner pour double post, et bien vous savez quoi ? supprimez mon compte, je me contenterai du forum US, il ne pourra plus y avoir de double post comme ca. Et j'invite tout le monde a en faire autant.

Re: Télécharger un fichier ZIP avec winhttp

Posté : mer. 05 juin 2019 10:56
par Tlem
Quelle mauvaise foi ...
Le premier message sur ce forum à été posté le 29 mai 2019 à 16:23 et le même message le 29 mai 2019 à 19h30 sur le forum US. Soit 3 heures entre les deux messages.
Ce qui correspond bien à du double post tel que défini dans nos règles.

Message FR.jpg
Message US.jpg

Le forum US et Français sont deux forum qui traitent du même sujet. Si tout le monde s'amuse à écrire le même message sur les deux forums, ca va vite être la foire d'empoigne avec des sujets en veut-tu en voilà et des réponses impossible à suivre correctement.

Si vous aviez attendu 24 à 48 heures, il en aurait été autrement, mais là la sanction est méritée.
Visiblement, pour un simple avertissement, vous avez supprimez votre compte par vous même. Qu'il en soit ainsi.

Re: Télécharger un fichier ZIP avec winhttp

Posté : mer. 05 juin 2019 13:43
par mikell
Je me permets d'ajouter :
- à propos de l'urgence due à un départ précipité, il y a eu sur le forum US des messages de cet utilisateur le 29 mai et le 30 mai. Venir mentionner ici la réponse obtenue, ça aurait pris 2 minutes
- bonne chance sur le forum US, mais à propos du savoir-vivre, attention : ils sont autrement plus stricts que nous