IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Envoyer une requete URL vers un serveur web (nodeJs pour mon cas)


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut Envoyer une requete URL vers un serveur web (nodeJs pour mon cas)
    Bonjour à tous,

    Je découvre Linux et ces possibilités, après plusieurs essais, je viens crier au secours

    voici ce que je voudrais faire ...

    j'ai une appli web sous nodejs qui fonctionne avec un formulaire qui permet saisir des données qui sont ensuite enregistré dans une base de données. jusque là tout va biens.

    mais voilà, j'aimerais maintenant pourvoir alimenter directement les données les envoyant avec l'url contenant les données en paramètre.

    Voici ce que j'ai fais, mais cela ne semble pas faire réagir mon serveur. Par contre si je tape l'adresse à la mano avec le paramètre cela fonctionne bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    read -p "Saisissez votre message : " message
    while [ -z $message ] || [ $message != "a" ]
    do
       echo "Vous avez saisi $message"
       read -p "Saisissez la lettre 'a' pour continuer : " message
        wget  "http://localhost:8080/$message"
        curl "http://localhost:8080/$message"
        curl --request GET  "http://localhost:8080/$message"
        curl --request POST "http://localhost:8080/$message"
    done
    echo "Vous avez saisi la lettre 'a'"
    (exemple trouvé sur le net et modifier pour tenter de l’adapter)
    voici le code avec plusieurs essais, mais aucune ne semble fonctionner. dites ce que je n'ai pas compris
    Merci beaucoup



    Christophe

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    en fait, le bash fonctionne, mais comme j'utilise un lecteur code barre pour envoyer la donnée, j'ai des caractères à la fin qui font que cela ne marche plus.

    Je ne peut pas reprogrammer le lecteur, alors comment ne conserver que x premiers caractères ? (je continue à chercher), il doit bien y a voir un truc du genres Left() ...

    pour revenir à notre sujet, je pense que la bonne commande est cURL, mais dans mon terminal, il m'affiche le code source de la page HTML, y-a-t-il une autre fonction plus mieux

    et enfin est la bonne méthode ?

    Merci a tous de vous intéresser à mon problème

    Christophe

    Bonne après midi

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Effectivement, il y a ces fonctions en natif dans bash.
    Donc man bash donne la solution. Tape / puis ## puis entrée, et tu seras en plein milieu du paragraphe qui contient tes réponses.

    Tu noteras particulièrement, la suppression de prefixe, suppression de suffixe et sous-chaîne.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ toto='toutouyoutou'
    $ echo $toto
    toutouyoutou
    $ echo ${toto:3:6}
    touyou
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Merci pour la réponse rapide, c'est bien ce qu'il me fallait

    Je chercher toujours comment envoyer une URL avec un bash mais sans télécharger la page dans la console

    est ce possible ?

    Merci

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Internet est une technologie client/serveur. Un client soumet une requête et un serveur répond.

    Tu ne peux pas empêcher le serveur de répondre. Mais tu peux mettre la réponse à la poubelle.

    Utilise une redirection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget -O- "http://localhost:8080/$message" >/dev/null
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Merci encore pour cette réponse.

    je vais tester ça...

    d'après ce que tu écrit tu préconise wget au lieu curl, ou c'est juste pour l'exemple

    Enfin, j'aurais un dernière question sur ce sujet. est ce que faire un boucle comme dans l'exemple au début est judicieux ? le but étant de récupérer les données d'un lecteur code barre pour les traiter ensuite

    le Bach sera lancer au démarrage du système et attendra patiemment la lecture d'un code barre.

    merci pour votre aide

    Bonne nuit

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bach
    Bach est un compositeur allemand de musique classique qui donnera notamment une Toccata et Fugue reprise pour le générique du dessin animé "Il était une fois l'homme".
    bash est un interpréteur de commande. (Bourne Again SHell)

    le but étant de récupérer
    Ben là, tu ne récupères rien. Déjà, ça part mal.

    les données d'un lecteur code barre pour les traiter ensuite
    Expliqué comme ça, j'aurais plutôt tendance à croire qu'il faille réagir à l'événement de lecture du code barre.

    le Bach sera lancer au démarrage du système
    En quoi est-il pertinent de faire cela? Tu veux plutôt dire au démarrage de la session, un fois que le système a fini de démarrer ?

    d'après ce que tu écrit tu préconise wget au lieu curl,
    Préférence personnelle. Rien d'absolu.

    est ce que faire un boucle comme dans l'exemple au début est judicieux ?
    C'est du langage de script. À partir du moment où tu obtiens ce que tu veux, tout commentaire est superflu.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Bach est un compositeur allemand de musique
    Oooops!!!, c'est peut être un déformation, je suis apprenti organiste...

    Expliqué comme ça, j'aurais plutôt tendance à croire qu'il faille réagir à l'événement de lecture du code barre.
    Oui mais comment faire ? (je viens du monde Windows et ce projet, je veux profiter de ce projet pour découvrir un autre monde ) lecteur code barre simule le clavier, je pense que pour le moment pour ce que je veux faire c'est bine, mais je retiens ton idée au cas ou.

    En quoi est-il pertinent de faire cela? Tu veux plutôt dire au démarrage de la session, un fois que le système a fini de démarrer ?
    Au final, l'appli devra être autonome, c'est à dire sans écran ni clavier, juste le lecteur Code barre et un serveur node Js.
    je récupéré le code scanné que j’envoie via une URL comme tu m'as expliqué et nodejs grâce à socket.io, si on est connecté via un autre écran, donnera l'info de ce qui a été scanné.
    donc c'est bien au démarrage du système, sans session d'ouverte (est-ce possible ?), sinon, il faut que la session s'ouvre automatiquement

    un projet tout simple

    Merci encore pour ton aide, j'avance à grand pas (mais peut être faudrait-'il démarrer un autre fils de discussion ? car là on s'éloigne du sujet de départ)

    Bon dimanche
    Christophe

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Mouai. Ça fait un peu patchwork de technologies. Sans doute, bash pourrait tout faire OU nodejs pourrait tout faire.

    Je ne suis pas sûr d'avoir saisi toutes les phases du procédé.
    Tu reçois un code. ( comment ? ).
    Seulement voilà, tu as une base de données Mysql à laquelle tu veux accéder par une page web ( connais-tu la commande shell 'mysql' ? ).
    Donc tu utilises un script bash (déclenché par nodejs ? ).
    Et tu voudrais que tout soit autonome ( comme un petit boitier genre Raspberry Pi ? )

    Ce n'est pas inconcevable de créer une session mono-utilisateur avec un utilisateur donné, non-administrateur, avec lequel seuls les lectures de code-barres seraient permises, et pour lequel la session se lancerait sans identification, au démarrage.

    A toi de voir.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Mouai. Ça fait un peu patchwork de technologies. Sans doute, bash pourrait tout faire OU nodejs pourrait tout faire.
    Merci pour ton aide, je me sent moins bête en Bash...

    Ensuite tu as raison, ça ne me plaisait pas non ce patchwork technologique , Grâce a toi j'ai fait des recherches et j'ai trouvé comment lire les entrées du lecteur code barre dans la console de NodeJS, du coup, je pense faire 100% NodeJs ce qui sera plus propre.


    Restera plus qu'a vérifier qu'au démarrage tout se lance bien et que la console ai bien la main pour récupérer les entrées du lecteur code barre.

    Merci encore pour ton aide et à tous également

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/08/2013, 04h41
  2. Réponses: 14
    Dernier message: 14/03/2007, 19h32
  3. Envoyer une requete vers jdbtable
    Par naima2005 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 27/06/2006, 23h41
  4. Réponses: 2
    Dernier message: 07/03/2006, 11h52
  5. Envoyer une requete php
    Par gilles641 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 12/11/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo