begin process at 2010 09 06 12:21:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

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

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


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Classé sous :http, protocole, chunked, winsock Niveau :Initié Date de création :03/01/2007 Vu / téléchargé :6 940 / 847

Auteur : delfare

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Permet de télécharger un fichier avec le protocole http en supprimant le header (HTTP/1.1 200 OK,....) et en gérant le découpage en morceau (Transfer-Encoding : chunked).
Il lit le status (200 OK, ...) et le type d'encodage (chunked)

Source

  • //reste du code dans le zip
  • int main()
  • {
  • int sock=-1;
  • char server_name[]="killingskill.ke0.eu";
  • char request_host[]="killingskill.ke0.eu";
  • char request_path[]="/";
  • char fichier[]="index.php";
  • int port=80;
  • WSADATA wsa;
  • WSAStartup(MAKEWORD(2,0),&wsa);
  • HTTPreader http;
  • if(http.connection(server_name,port)<0)
  • return -1;
  • http.load(request_host,request_path,fichier);
  • http.save(fichier);
  • WSACleanup( );
  • system("pause");
  • return 0;
  • }
//reste du code dans le zip

int main()
{
        int sock=-1;
	char server_name[]="killingskill.ke0.eu";
	char request_host[]="killingskill.ke0.eu";
	char request_path[]="/";
	char fichier[]="index.php";
	int port=80;

	WSADATA wsa;
	WSAStartup(MAKEWORD(2,0),&wsa);	

        HTTPreader http;
	if(http.connection(server_name,port)<0)
	   return -1;
        http.load(request_host,request_path,fichier);
        http.save(fichier);
	WSACleanup( );
	system("pause");
	return 0;
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • connection.devTélécharger ce fichier [Réservé aux membres club]884 octets
  • main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 664 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip LECTEUR VIDEO OPENGL (SON ET IMAGE) AVEC LA LIB VFW
Source avec Zip TCP/IP : TRANSFERT DE FICHIERS

 Sources de la même categorie

Source avec Zip [C++][W IN]LIBRAIRIE HTTP par nipepsinicolas
Source avec Zip ASPIRATEUR RÉCURSIF MACOS par tontonCD
Source avec Zip INTÉGRATION SIMPLE D'UN CLIENT IRC À UNE APPLICATION par PJulot
LIBRAIRIE POUR SOCKETS C++ par genetApt151
Source avec Zip COVERT ART IMAGE par nanonavich

 Sources en rapport avec celle ci

Source avec Zip [C++][W IN]LIBRAIRIE HTTP par nipepsinicolas
Source avec Zip ASPIRATEUR RÉCURSIF MACOS par tontonCD
Source avec Zip MINICHAT CLIENT SERVEUR DANS LAN par bboy0303
Source avec Zip Source avec une capture MOUSECONTROL par NeoUmbrella
Source avec Zip Source avec une capture [C/WIN32] REJOINDRE UN AMI SUR COD2 (CALL OF DUTY 2) par katsankat

Commentaires et avis

Commentaire de deck_bsd le 08/01/2007 17:30:41

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 ?

Commentaire de polytechnique le 03/09/2007 18:51:10

je ne sais comment faire marcher ce programme, a savoir que je suis nul en C++/C, merci bien

Commentaire de BumpMANN le 01/01/2008 14:12:32

tu connait free() ?

va falloir en utiliser :/

c'est dommage, c'est pas mal mais du coup inexploitable telle quelle..

Commentaire de soso62fr le 14/04/2009 23:12:22

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

Commentaire de soso62fr le 14/04/2009 23:12:41

d'un fichier...*

Commentaire de soso62fr le 25/04/2009 07:04: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.

Commentaire de soso62fr le 25/04/2009 07:06:18

euh une petite correction, sizeof(cs)-1 et non pas sizeof(cs)

Commentaire de soso62fr le 25/04/2009 07:17:15

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;
}

Commentaire de malkommalkom le 29/10/2009 00:15:07

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)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Envoi d'un fichier XML par le protocole HTTP [ par Tof ] Bonjour tout le monde,J'aurais voulu savoir comment envoyer un fichier XML par l'intermédiaire du protocole HTTP en utilisant la méthode POST.Merci d' Envoi de données par le protocoles HTTP [ par Tof ] Bonjou,J'aurai voulu savoir comment faire pour envoyer des données d'un client vers un serveur en utilisant le protocole HTTP avec la méthode POSTMerc Nouveau [ par gaya ] Ouverture d'un nouveau forum consacrer à la programmation C/C++ sur http://www.cppint.fr.st , venez nombreux !Il s'agit d'un forum international, ouve utilisation de recv(...) de winsock [ par siam ] la fonction recv(...) bloque mon appli tant qu'elle n'est pas validée par une reception de données.comment puis je configurer mon appli pour ne pas at Récupere le contenu d'un txt à distance via http [ par noplay ] Je veux ouvrir une url (style http://www.hello.com/world.txt) et récuperer le contenu de cette page, ce code doit être portable puisque il sera compil utilisation de la bibliotheque winsock.h(pbs de lien avec les fonction) [ par netmoun ] salut je suis étudiant de l'institut d'informatique de constantine, je travail sur un projet reseau ,au cours du dévelopement de mon pgm réseau en V 0xa0 <-erreur VC++ [ par Toobad ] Mon vc++6 arrete pas de me faire la guelle.il m'envoie une tonne d'erreur 0xa0 partout, sur toutes les API. Je crois que c'est à cause des include ou protocole DLC en c++ [ par syl81 ] SalutJ'utilise le protocole DLC pour communiquer avec une imprimante et j'ai un problème avec la fonction AcsLan() : à l'édition de liens j'ai une err Attendre la fin d'un envoie winsock sans MFC, Dev-C++ [ par Jhep ] envoyer un fichier avec winsock [ par Jhep ] Salut !Je voudrais envoyer un fichier avec winsock en c/c++ et sans les MFC's. Quelqu'un sait comment ?Merci.


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
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,858 sec (4)

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