[HTTP] TÉLÉCHARGEMENT D'UN FICHIER PAR LE PROTOCOLE HTTP 1.1

Signaler
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
-
Messages postés
36
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
7 novembre 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40959-http-telechargement-d-un-fichier-par-le-protocole-http-1-1

Messages postés
36
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
7 novembre 2010

Bon code, juste ce qu'il me falait pour l'utilisation du mode de transfert "chunked".

Tu code en C++ objet, donc 2 petit conseil.
1- Bumpman l'a dit, tu oubli de liberer la memoir alloué avec free();.
Un malloc(); et toujours suivit d'un free();

2- En realiter, avec les classes il est preferable d'utiliser
les operateur new et delete.
C'est une abitude a prendre car C++ gerent mieux ces operateurs pour pouvoir appeler le constructeur et le destructeur d'une classe lorsqu'on alloue celle ci dynamiquement.

char * buf;

buf=new char [nbtab]; // creer un tableau de nbtab carractere

//tu utilise ton buffer

delete buf; //important, et oui sans sa la variable reste allouer
// ta RAM n'est pas infini. La derniere foi que j'ai mal ordoner mes allocation, mon PC c'est etein (je croi que la RAM etait devenu inaxessible)
Messages postés
59
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
28 avril 2010
8
Oh purééé! je suis vraiment con! plus con que moi tu meurs! C'est normal que j'ai ces erreurs c'est parce que ce code je l'ai fait à 4h du mat et j'ai pas dormis donc je codé comme un pied et quand je l'ai relus j'ai trouvé que je l'ai malle codé!

Voila le bon code:

destination.erase(); // std::string
char buffer[128];
int n;
while((n=recv(sock,buffer,sizeof(buffer)-1,0))>0)
{
buffer[n]='\0';
destination+=buffer;
}
Messages postés
59
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
28 avril 2010
8
euh une petite correction, sizeof(cs)-1 et non pas sizeof(cs)
Messages postés
59
Date d'inscription
mardi 28 novembre 2006
Statut
Membre
Dernière intervention
28 avril 2010
8
Dite moi svp j'ai un petit probléme.
J'ai fait une fonction pour recuperer le contenue d'une page mais le probléme c'est que j'ai des caracteres en plus comme des "fef" ou des A qui s'ajoute au contenue qui n'existe pas quand je verifie avec IE ou firefox.

voila le morceau de code qui gere l'envoye et la reception des requettes :

sprintf(reqHTTP,"GET /index.php HTTP/1.1\r\nConnection: Close\r\n\r\n");
send(sock,reqHTTP,strlen(reqHTTP),0);
destination.erase(); // std::string
char cs[96];
while(recv(sock,cs,sizeof(cs),0)>0)
destination+=cs;


Voila, merci d'avance pour votre aide.
Afficher les 9 commentaires