begin process at 2012 05 30 15:52:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Rhaaaa Requete Post http


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Rhaaaa Requete Post http

jeudi 5 juillet 2007 à 17:52:10 | Rhaaaa Requete Post http

fredsor

Membre Club
Salut a tous,
Desolé pour ce cri primaire, mais je comprends pas pourquoi ca ne marche pas...
Voici ma la requete que je send :
char canal[200];
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
    SOCKET sock;
    SOCKADDR_IN sin;
    sock = socket(AF_INET, SOCK_STREAM, 0);

    strcat(canal,"POST truc.php HTTP/1.1\r\n");
    strcat(canal,"Host: 1.1.32.80\r\n");
    strcat(canal,"Content-Type: application/x-www-form-urlencoded\r\n");
    strcat(canal,"Content-Length: 11\r\n");
    strcat(canal,"\r\n");
    strcat(canal,"titi=canari\r\n");
    strcat(canal,"\r\n");
    sin.sin_addr.s_addr = inet_addr("1.1.xx.xx");//serveur local
    sin.sin_family = AF_INET;
    sin.sin_port = htons(80); // port HTTP.


connect(sock, (SOCKADDR *)&sin, sizeof(sin))
send(sock, canal, strlen(canal), 0); // on envoie la requête HTTP.
closesocket(sock); // on ferme le socket.
 WSACleanup();

Mon fichier truc.php est censé m'afficher le contenu via ce code : <?php print_r($_POST); ?>
mais ca m'ecris :  Array()
si je mets <?php print_r($_POST['titi']); ?> ca me mets une page vierge

J'ai sniffer avec Wireshark, et ma requete parait bien lancée au serveur :
POST truc.php HTTP/1.1
Host: 1.1.32.80
Content-Type: application/x-www-form-urlencoded
Content-Length: 11

titi=canari

Merci d'avance, je sens que mon erreur est toute bete, mais je suis tout de meme dessus depuis ce matin!




jeudi 5 juillet 2007 à 17:54:10 | Re : Rhaaaa Requete Post http

fredsor

Membre Club
Euh pour ceux qui auraient pas compris, je cherche a afficher ce que j'envoi via ma methode POST...
jeudi 5 juillet 2007 à 18:17:06 | Re : Rhaaaa Requete Post http

BruNews

Administrateur CodeS-SourceS
1 prob possible:

le 1er strcat
strcat(canal,"POST truc.php HTTP/1.1\r\n");
qui sait où se trouve le 1er '\0' de la chaine et surtout s'il y en a 1.

ciao...
BruNews, MVP VC++
jeudi 5 juillet 2007 à 19:28:16 | Re : Rhaaaa Requete Post http

fredsor

Membre Club
Salut,
Ok, donc je devrais faire quoi. Essayer avec des printf?
Faire un seul strcat global?
Je ne vois pas trop pour le '/0', car j'ai fait le meme systeme de strcat pour une requete GET precedemment, afin de recuperer d'autres données, et cela fonctionne parfaitement...

jeudi 5 juillet 2007 à 19:51:26 | Re : Rhaaaa Requete Post http

BruNews

Administrateur CodeS-SourceS
remplace le 1er strcat par strcpy.

ciao...
BruNews, MVP VC++
jeudi 5 juillet 2007 à 20:43:48 | Re : Rhaaaa Requete Post http

SAKingdom

Membre Club
Si la requête est constante, pourquoi ne pas tout mettre dans le même strcpy ?

strcpy(canal,"POST truc.php HTTP/1.1\r\n"
                 "Host: 1.1.32.80\r\n"
                 "Content-Type: application/x-www-form-urlencoded\r\n"
                 "Content-Length: 11\r\n"
                 "\r\n"
                 "titi=canari\r\n"
                 "\r\n");

Ou encore, dès la déclaration de canal ?

char canal[] = "POST truc.php HTTP/1.1\r\n"
                 "Host: 1.1.32.80\r\n"
                 "Content-Type: application/x-www-form-urlencoded\r\n"
                 "Content-Length: 11\r\n"
                 "\r\n"
                 "titi=canari\r\n"
                 "\r\n";

C++ (@++)

jeudi 5 juillet 2007 à 20:48:35 | Re : Rhaaaa Requete Post http

SAKingdom

Membre Club
Aussi, ajouter la chaine dès la déclaration de canal, toujours si la requête est constante, permettrait d'utiliser sizeof (sizeof(canal)-1) au lieu de strlen. Évidament, tant qu'à faire, on pourrait tout aussi bien tout envoyer directement à partir de send mais bon...

C++ (@++)

jeudi 5 juillet 2007 à 20:52:24 | Re : Rhaaaa Requete Post http

fredsor

Membre Club
J'essaye tout cela des que possible!
Cependant, l'adresse Host pourra varier ( lue a partir d'un fichier INI), et surtout le contenu ne sera pas si basique, mais une chaine variant, récupérée en fonction d'actions de l'utilisateur.
Ceci dit, si la premiere solution ne fonctionne pas, j'essaierai avec une constante pour voir si le probleme vient de la
Je vous tiens au courant,
Merci bien
jeudi 5 juillet 2007 à 21:16:10 | Re : Rhaaaa Requete Post http

SAKingdom

Membre Club
Ah bon. Ben si ta requête n'est pas constante, oublies ce que je viens d'écrire.

Une méthode simple serait d'utiliser sprintf mais comme je risque de me faire tuer par BruNews pour avoir dis une telle chose, je dirais donc que le mieux reste de coder ton propre strcat ou strcpy pour qu'il puisse retourner un pointeur sur le 0 de fin de chaine afin de permettre un chaine direct et aussi, de minimiser les appels à ton strcat ou strcpy.
Voici un exemple simple:

// La fonction strcpy perso
__inline char *mystrcpy (char *dest, char *src)
{
    //while(*dest) dest++; // Décommente cette ligne et tu auras un strcat

    while(*src) *dest++ = *src++;
    *dest = 0;

    return dest;
}

// Dans le code...
char canal[200], *c = canal;

c = mystrcpy(c,"POST truc.php HTTP/1.1\r\n");
c = mystrcpy(c,"Host: 1.1.32.80\r\n");
c = mystrcpy(c,"Content-Type: application/x-www-form-urlencoded\r\n");
c = mystrcpy(c,"Content-Length: 11\r\n\r\n");
mystrcpy(c,"titi=canari\r\n\r\n");

C++ (@++)

jeudi 5 juillet 2007 à 21:19:17 | Re : Rhaaaa Requete Post http

SAKingdom

Membre Club
Oups:
"afin de permettre un chainage direct"

C++ (@++)


1 2

Cette discussion est classée dans : http, canal, sin, strcat, sock


Répondre à ce message

Sujets en rapport avec ce message

Probleme Winsock [ par fredsor ] Salut a vous, Je suis toujours en train de passer une appli de embedded visual c++ (donc pour Windows CE => Pocket Pc) vers DevC++ (windows "normal", Winsock et les accents... [ par fredsor ] Salut a tous, Voila j'ai realisé un projet, celui-ci consiste à récupérer une chaine de caracteres provenant d'une servlet distante.Bon jusque là rien Socket Requette HTTP Post - Enlever le header de la réponse [ par SuperChouquette ] 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 bie Requete HTTP POST MIME - Upload de fichier [ par SuperChouquette ] Bonjour, je suis débutant et j'ai créer une fonction pour uploader un fichier sur un serveur php apache via le protocole http et le standard mime.Le p Recuperer contenu requete http [ par fredsor ] Bonjour, Je voudrais me connecter a mon serveur local afin de recuperer le contenu par exemple d'un fichier txt.Grace a un code trouvé sur le site, j' RECV() TELNET [ par kiki67100 ] Bonjour j'ai fait un serveur en c++ Mais le probleme c'est que mon code lit le recv() de telnet caractere par caractere et moi je voudrais phrase par socket trop lents [ par cid7777777 ] bonjour,jessaye de faire un jeu qui peu se jouera 2 en reseau local.je ne connais absolument rien en reso, mais en fouillant sur le net,  jai trouver Bind echouant.. [ par lektrosonic ] Bonsoir, deux applications, bon pour etre original: serveur et client.Chacune de leur cote effectue ce code:Serveur:----------------------   if(WSASta Problème d'IP Client avec les winsock [ par Cphil51 ] Boujour a tous.Je m'interesse en ce moment aux socket sous windows et j'ai un petit probleme actuellement. J'aimerais savoir comment récupérer l'IP d' Problème de connexion Socket [ par qhhu ] Bonjour !En temp normal, je programme en java, mais j'ai voulu essayer le c++parce que je trouve que c'est interessant de connaître plusieurs language


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales