Socket Requette HTTP Post - Enlever le header de la réponse [Résolu]

Signaler
Messages postés
37
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
18 mai 2010
-
cs_SuperChouquette
Messages postés
37
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
18 mai 2010
-
Bonjour, je suis débutant et à l'aide d'autres sources j'ai créer une fonction pour envoyer une requete POST à un serveur web, celle-ci fonctionne bien, mais quand le serveur web renvoi la réponse je recoit aussi le header et j'aimerais savoir comment je peux faire pour ne pas l'avoir ..
par exemple je recoit :

HTTP/1.1 200 OK
Date : Sun, 11 Jan 2009 11:21:08 GMT
Server : Apache/2.2.3 <Win32> PHP/5.2.0
X-Powered-By: PHP/5.2.0
Content-Lenght: 17
Content-Type: text/html

LaReponseDuServer

et j'aimerais récuperer uniquement le texte "LaReponseDuServer", comment puis-je faire pour enlever le header ?

Voici ma fonction POST :

void POST()
{

   WSADATA WSAData;
   int erreur = WSAStartup(MAKEWORD(2,0), &WSAData);
   SOCKET sock;
   SOCKADDR_IN sin;
   char buffer[1024] = "";
 
    /* Si les sockets Windows fonctionnent */
    if(!erreur)
    {
        /* Création de la socket */
        sock = socket(AF_INET, SOCK_STREAM, 0);
 
        /* Configuration de la connexion */
        sin.sin_addr.s_addr = inet_addr("127.0.0.1");
        sin.sin_family = AF_INET;
        sin.sin_port = htons(80);
 
        /* Si l'on a réussi à se connecter */
        if(connect(sock, (SOCKADDR *)&sin, sizeof(sin)) != SOCKET_ERROR)
        {
            printf("Connection à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));

            char commande[5000];
            sprintf(commande,"POST %s HTTP/1.1\r\nHost: %s\r\nAccept: */*\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:18\r\n\r\nIdentifiant=Pierre",http_req_path,url_server);
            send(sock,commande,strlen(commande)+1,0);

            char response [1024] ="";
            while (recv(sock,buffer, 1024, 0) > 0)
            {
                strcat(response, buffer);
            }

            printf("%s", response); // J'aimerais afficher la réponse sans le header..

        }
        /* sinon, on affiche "Impossible de se connecter" */
        else
        {
            printf("Impossible de se connecter\n");
        }
 
        /* On ferme la socket */
        closesocket(sock);
 
        WSACleanup();
    }

}

Merci d'avance ! Chouquette.

3 réponses

Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

tu lui demande de repondre en text
client=t si le client accept de renvoyer la reponse text

"POST %s HTTP/1.1\r\nHost: %s\r\nAccept:
*/*\r\nContent-Type:application/x-www-form-urlencoded\r\nContent-Length:18\r\n\r\nIdentifiant=Pierre\r\nclient=t"

ou tu fais un menage

int ii=0;

for(int i=0;i<strlen(response);i++) {

//ici 2 solution un compteur ou la dernierre lettre du header
if(i>20) cleanrespond[ii++]=response[i];

}

cleanrespond[ii+1]='\0';

printf("%s", cleanrespond);
Messages postés
54
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
15 août 2015

POST %s HTTP/1.1\r\nHost: %s\r\nAccept:  text

devrais faire l affaire!

http://www.commentcamarche.net/contents/internet/http.php3
Messages postés
37
Date d'inscription
dimanche 24 février 2008
Statut
Membre
Dernière intervention
18 mai 2010

Merci beaucoup ca marche nikel !