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 :

Client HTTP POST en C


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Client HTTP POST en C
    Bonjout tout le monde;
    J'ai besoin d'un code c qui me permet d'envoyer un fichier (une image par exemple) à un serveur HTTP.

    Merci.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Ce n'est pas très compliqué à faire, il suffit d'implémenter la requête POST en C avec les sockets.

    Tu as tout ce qu'il faut dans la RFC 2616 pour les détails d'implémentation

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci pour la réponse;
    mais je veux clarifier 2 points:
    * Est ce que je dois convertir ( avant d'envoyer la requete http ) l'image en ASCII et la mettre au buffer?
    * si vous avez un exemple de trame http POST d'envoi d'un fichier merci de la poster.

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par medos86 Voir le message
    * Est ce que je dois convertir ( avant d'envoyer la requete http ) l'image en ASCII et la mettre au buffer?
    Le protocole HTTP est un protocole "texte". Toute la trame doit être du texte en ASCII.

    Une image étant, par essence, du binaire, il faut la transformer en texte ASCII. En général, c'est l'encodage base64 qui est utilisé (voir les RFC concernant HTTP pour les détails).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    salut,
    j'ai trouvé un bout de code pour former ma trame http pour envoyer un fichier texte.
    Le serveur affiche que l'upload est complet mais n ouvrant le fichier je le trouve vide.

    voici le code:
    const char entete1[] = "POST /Upload HTTP/1.1\r\n"
    "Content-Type: multipart/form-data; boundary=92521164717432\r\n"
    "Content-Length: ";

    const char cariage_return[] = "\r\n\r\n";


    const char entete2[] = "--92521164717432\r\n"
    "Content-Disposition: form-data; name=\"passwd\"\r\n\r\n";

    const char mdp[] = "0011223344556677";

    const char entete3[] = "\r\n--92521164717432\r\n"
    "Content-Disposition: form-data; name=\"frontalip\"\r\n\r\n";


    const char entete4[] = "\r\n--92521164717432\r\n"
    "Content-Disposition: form-data; name=\"request\"; filename=\"file\"\r\n"
    "Content-Type: application/octet-stream\r\n\r\n";

    const char boundary[] = "\r\n--92521164717432--\r\n\r\n";


    int send_http( char *file_to_send, unsigned int file_length )
    {
    int lenRequest;
    int len_header;
    char adr_ip[64];
    char pRequetteBuffer[3100];
    memset( pRequetteBuffer,0x00,sizeof(pRequetteBuffer));
    //unsigned int RequestBufferLen = 0;

    memset( adr_ip,0x00,sizeof(adr_ip));
    memcpy( adr_ip,"10.3.1.44",9);
    len_header = strlen(entete2) + strlen(mdp) + strlen(entete3) + strlen(adr_ip) + strlen(entete4) + strlen(boundary);

    sprintf(pRequetteBuffer,"%s%d%s%s%s%s%s%s", entete1, len_header + file_length, cariage_return,
    entete2, mdp, entete3, adr_ip, entete4);

    lenRequest = strlen(pRequetteBuffer);

    memcpy(pRequetteBuffer + lenRequest, file_to_send, file_length);

    lenRequest = lenRequest + file_length;

    sprintf(pRequetteBuffer + lenRequest, boundary);

    lenRequest += strlen(boundary);

    SendMessage(pRequetteBuffer,lenRequest);

    }

Discussions similaires

  1. Client HTTP
    Par bruno-travail dans le forum C++
    Réponses: 4
    Dernier message: 11/04/2006, 14h54
  2. HTTPS - POST côté client
    Par Julaie95 dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 29/03/2006, 15h37
  3. Requette HTTP POST
    Par CrazySeb dans le forum C++
    Réponses: 7
    Dernier message: 25/02/2006, 15h17
  4. HTTP POST
    Par jmjmjm dans le forum Web & réseau
    Réponses: 17
    Dernier message: 12/11/2005, 22h05
  5. [HTTP][POST] passassion de variable
    Par Yodalf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 04/09/2004, 21h09

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