PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Envoyer fichier avec API Rest
Envoyer fichier avec API Rest
Débuté par Kad, 23 sep. 2021 17:12 - 3 réponses
Posté le 23 septembre 2021 - 17:12
Bonjour à tous,

je travaille avec Windev 24, j'ai donc une API rest qui m'envoie un fichier qui fait un peu plus de 100 Mo, sauf que je mets 15 minutes à récupérer ce fichier je trouve que c'est unb peu long, pourriez vous m'aider à comprendre d'où peut venir le problème ou bien de réduire ce temps de téléchargement.

Voici mon code

requete_HTTP_API..Méthode = httpPost
requete_HTTP_API..ContentType ="application/json"
requete_HTTP_API..Entête["autorisationAPI"] = cle_autorisation_API
requete_HTTP_API..Contenu = parametres_envoyes
requete_HTTP_API..DuréeNonRéponse = 600000

reponse_HTTP_API = RESTEnvoie(requete_HTTP_API)

SI ErreurDétectée ALORS
Info(ErreurInfo(errMessage))
SINON
SI reponse_HTTP_API..CodeEtat = "200" ALORS
reponse_HTTP_API_JSON = reponse_HTTP_API..Contenu
SINON
Info("Une erreur est survenue lors de la récupération de fichiers archives: " + RC + reponse_HTTP_API..Contenu)
FIN

RENVOYER reponse_HTTP_API_JSON

FIN
Membre enregistré
3 889 messages
Popularité : +227 (347 votes)
Posté le 24 septembre 2021 - 08:15
Bonjour,
Ton API t'envoie-t-elle le fichier ou les données du fichier ?

--
Il y a peut être plus simple, mais, ça tourne
Posté le 24 septembre 2021 - 11:04
Bonjour,

Merci de m'aider.
Elle envoie les données du fichier :

JSON_retour.contenu_fichier = Encode(fChargeBuffer(nom_fic_source), encodeBASE64)
RENVOYER JSON_retour
Posté le 24 septembre 2021 - 16:36
Donc tu fais:

lecture de 100 Mo sur le serveur
Encodage des 100 Mo en base 64 sur le serveur
Envoi des xxxx Mo encodés sur le client (base 64 va forcément augmenter la taille)

La première chose à faire est donc de mesurer ces trois étapes (sur le serveur, tu ajoute une trace dans un fichier du temps passé à faire les 2 premières étapes, et tu soustrais au total)... Ecris aussi dans le fichier la taille résultante après passage en base 64.

Ca va permettre de voir quelle est la partie lente...

Au passage, tu ne nous dis pas de quelle vitesse de connexion tu dispose, ce qui peut aussi être un facteur