Créer une traceVisualiser une traceBibliothèqueCartesCommunauté ForumsToposLes plus belles randosSegmentsOutdoor StoriesOffre PremiumConnexion
VisuGPX
Sélectionner un fichier
.gpx .fit .tcx
Options

Le seuil et le lissage permettent d'optimiser le calcul du denivelé
Inscription
Entrez votre email et récupérez votre mot de passe dans votre boite
Ou
J'ai déjà un compte
Connexion
Entrez l'email et le mot de passe que vous avez reçu lors de votre inscription
Créer un compte | Mot de passe oublié
Accueil > Tous les forums > Matériels, logiciels et services tiers > Post HTTP

Post HTTP


Nouveau sujet Voir tous les sujets Chercher Archives
A
adrien.marie
[5 posts] - Le 18/03/2024 23:16

Bonjour,
Je m'intéresse à l'automatisation de post de trace .gpx sur une carte et je souhaiterai savoir s'il est possible de faire des posts via requête HTTP au lieu de curl ?
Merci d'avance,
adrien

Admin
[6499 posts] - Le 19/03/2024 05:09

Bonjour Adrien, vous confondez la fin et le moyen ! Le serveur ne reçoit que des requêtes HTTP. Curl n'est qu'un moyen pour les générer. Vous pouvez utiliser n'importe quelle bibliothèque de programmation qui supporte les requêtes HTTP pour accomplir la même tâche. Par exemple, en Python, vous pourriez utiliser des bibliothèques comme Requests ou urllib pour envoyer vos fichiers .gpx selon les spécifications de la doc API www.visugpx.com/api/documentation_api.php .

Si vous pensiez simplement pouvoir saisir une requête dans la barre d'adresse, ce n'est pas directement possible car vous ne pourrez pas définir le header ou les données liées (fichier gpx par exemple)

Curl est très simple à utiliser, vous pouvez simplement le saisir dans la console Windows par exemple !

A
adrien.marie
[5 posts] - Le 19/03/2024 22:04

Merci pour votre réponse !
Je m'étais mal exprimé, effectivement, c'était pas du tout clair, désolé.
J'ai avancé un peu.
J'essaie de transmettre un fichier .gpx via une URL, en passant l'url en valeur du paramètre "gpx" mais j'ai une erreur NO FILE.
Merci !
adrien

Admin
[6499 posts] - Le 19/03/2024 22:12

Bonjour, oui vous ne pouvez pas faire comme ça. Dans une requête POST, le serveur reçoit tout, y compris le fichier, il ne va pas suivre un lien pour aller le chercher ! Vous devez utiliser des outils comme Curl qui font ça pour vous très simplement (vous donnez l'adresse locale du fichier, Curl le récupère, et le joint à la requête).

A
adrien.marie
[5 posts] - Le 19/03/2024 22:14

Mince !
Je ne lance pas la requête à partir de mon pc mais à travers une application (donc pas possible de faire un curl), qui n'a pas le .gpx en local.
Est-ce qu'on peut passer le corps du .gpx directement en argument ?
Merci pour votre réactivité en tout cas !
adrien

Admin
[6499 posts] - Le 19/03/2024 22:20

L'application, qu'est ce que c'est ? c'est vous qui la gérez ? elle doit forcément utiliser un langage qui implémente une bibliothèque pour lire des fichier distants et faire des requêtes http. Votre application doit
1. récupérer le fichier distant
2. lancer une requête POST en y joignant le fichier.

A
adrien.marie
[5 posts] - Le 19/03/2024 22:27

J'utilise le logiciel n8n qui permet d'automatiser des tâches en se connectant à des API.
En l'occurrence, j'ai des fichiers .gpx dans une base de données Baserow et les url pour les télécharger et j'aimerais les poster automatiquement sur VisuGPX via un javascript.

Admin
[6499 posts] - Le 20/03/2024 08:09

community.n8n.io/t/trying-to-upload-a-file-to-an-http-endpoint/4459

Ce qui donnerait en gros

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

// Paramètres
const cle = 'VotreCleIci';
const gpxFilePath = '/chemin/vers/le/fichier.gpx';
const traceName = 'Nom de la trace';
const activityType = 'vtt';
const visibility = 2;
// Autres paramètres (desc, f, folder, lock, flux) peuvent être ajoutés si nécessaire

// Créer un formulaire avec les données
const formData = new FormData();
formData.append('gpx', fs.createReadStream(gpxFilePath));
formData.append('name', traceName);
formData.append('activity', activityType);
formData.append('visibility', visibility);

// Configurer les en-têtes HTTP, y compris l'autorisation
const config = {
headers: {
...formData.getHeaders(),
'cle': `${cle}`
}
};

// Envoyer la requête POST à l'API de VisuGPX
axios.post('https://www.visugpx.com/api/upload', formData, config)
.then(response => {
console.log('Réponse de l'API:', response.data);
})
.catch(error => {
console.error('Erreur lors de l'envoi à l'API:', error);
});

Connectez-vous pour poster
Pour soutenir VisuGPX, faites le bon choix
En cliquant sur "accepter" vous autorisez l'utilisation de cookies à usage technique nécessaires au bon fonctionnement du site, ainsi que l'utilisation d'autres cookies (éventuellement tiers) à des fins statistiques ou de personnalisation des annonces pour vous proposer des services et des offres adaptées à vos centres d'interêt.

Vous pouvez à tout moment modifier ce choix ou obtenir des informations sur ces cookies sur la page des conditions générales d'utilisation du service :
REFUSER
ACCEPTER