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

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 8 janv. 2007 à 17:30
malkommalkom Messages postés 36 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 7 novembre 2010 - 29 oct. 2009 à 00:15
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

malkommalkom Messages postés 36 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 7 novembre 2010
29 oct. 2009 à 00:15
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)
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
25 avril 2009 à 07:17
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;
}
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
25 avril 2009 à 07:06
euh une petite correction, sizeof(cs)-1 et non pas sizeof(cs)
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
25 avril 2009 à 07:04
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.
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
14 avril 2009 à 23:12
d'un fichier...*
soso62fr Messages postés 59 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 28 avril 2010 8
14 avril 2009 à 23:12
Pas malle la class !
Stp tu peux me donner la syntaxe d'une requette HTTP qui, par exemple demande le contenue d'une fichier avec l'extension rar!

Merci ! =D
BumpMANN Messages postés 330 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 26 janvier 2009
1 janv. 2008 à 14:12
tu connait free() ?

va falloir en utiliser :/

c'est dommage, c'est pas mal mais du coup inexploitable telle quelle..
polytechnique Messages postés 1 Date d'inscription lundi 18 décembre 2006 Statut Membre Dernière intervention 3 septembre 2007
3 sept. 2007 à 18:51
je ne sais comment faire marcher ce programme, a savoir que je suis nul en C++/C, merci bien
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
8 janv. 2007 à 17:30
N'aurait-il pas été préfèrable d'en faire une fonction générale et d'aller le poster en tant que snippet ?
Rejoignez-nous