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

C++ Discussion :

C++ Rest SDK ajouter des paramètres d'en tête HTTP (headers)


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut C++ Rest SDK ajouter des paramètres d'en tête HTTP (headers)
    Bonjour,

    J'essaye d'ajouter des paramètres à l'en tête de ma requêtes (des headers), mais lorsque je test avec un client comme postman ils n'apparaissent pas.
    Un petit bout de code sur comment j'essaye d'mplémenter mes paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    			request.headers().add(U("Content-Type"), U("image/png"));
    			request.headers().add(U("Connection"), U("keep-alive"));
    			request.reply(206, ostrm.str());
     
    			return request;
    L'en-tête actuel que je reçois:

    Server →Microsoft-HTTPAPI/2.0
    Content-Length →292182
    Content-Type →text/plain; charset=utf-8
    Date →Mon, 18 Nov 2019 14:43:44 GMT

    j'aimerais même changer le content type mais rien.
    Si quelqu'un a déjà été confronté au même problème.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    web::http::http_headers::set_content_type
    Si tu ajoutes en plus une clé content-type dans headers, sûrement qu'elle sera ignorée.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Merci pour la petite précision Bousk.
    Dans tout les cas mon header ne change pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    			request.headers().set_content_type(utility::string_t(utility::conversions::to_utf16string("image/png")));
    			request.reply(206, ostrm.str());

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Pourquoi retourner une image avec un code 206 ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    L'image c'est juste pour faire un test, à la base c'est pour tester avec des fichiers audio et vidéo.
    Je test avec une image car c'est plus léger pour tester que de tester à chaque fois avec des vidéos

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Actuellement mon code pour mon en tête ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    			request.headers().set_content_type(U("image/png"));
    			request.headers().add(U("Connection"), U("keep-alive"));
    			request.reply(206, ostrm.str());
    Tandis que le résultat de la réponse, lui ne change passe, soit:

    Server →Microsoft-HTTPAPI/2.0
    Content-Length →292182
    Content-Type →text/plain; charset=utf-8
    Date →Mon, 18 Nov 2019 16:45:36 GMT

    Même si je fais un request.headers().clear(); ça ne supprime en aucun cas mes paramètres de mon header.
    Je crois que ça ne fait aucun effet, ça ne doit pas être la bonne façon de procéder.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Points : 20
    Points
    20
    Par défaut
    Ok c'est bon, c'est tout con, je vais poster la réponse ici en espérant que cela puisse aider pour ceux qui seraient dans le même problème ou un problème similaire.

    Voilà comment faire une réponse avec la librairie Rest SDK de Microsoft correctement:

    Tout d'abord utiliser la classe http_response.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    http_response response;
    response.set_status_code(206);
    Ici on en profite également pour directement attribuer j'en profite directement pour ajouter un code d'en-tête, là en l'occurrence j'ai mis 206, mais on utilise plus communément 200 dans le cas ou votre requête ce serait bien passé.
    Ensuite pour ajouter des paramètres à votre en-tête de votre réponse.

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    response.headers().add(U("Connection"), U("keep-alive"));
    response.headers().add(U("Accept-Ranges"), U("bytes"));
    Ensuite, pour retourner votre réponse il suffit de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.reply(response);
    Ici l'objet request est de type http_request.
    Voilà, vous devriez comprendre si vous avez un peu chercher, ce que ça signifie.
    Merci Bousk également pour tes réponses, cela m'a tout de même aider.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Effectivement ta variable nommée request aurait dû faire tilt, mais oui pour envoyer une réponse, il faut un objet response.
    Modifier les headers de la requête euh.. assez inutile en effet et n'aura aucun effet sur la réponse.
    Et il faut vérifier que le bon reply soit appelé.. Y'en a plusieurs pour nous faciliter la vie.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. [SHELL] ajouter des paramètres pour une commande shell
    Par anissben dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 11/12/2010, 13h36
  2. [W3C] Ajout des paramètres dans l'attribut action d'un formulaire
    Par anaranjado dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/04/2010, 13h24
  3. Réponses: 9
    Dernier message: 09/07/2009, 23h17
  4. Ajouter des paramètres à un run
    Par dumser1 dans le forum Windows
    Réponses: 9
    Dernier message: 22/01/2007, 19h01
  5. [ajouter des paramètres au post avant envoi]
    Par jean-jacques varvenne dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 11/04/2006, 18h01

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