Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

Catégorie :Réseaux & Internet Classé sous : http, protocole, chunked, winsock Niveau : Initié Date de création : 03/01/2007 Vu / téléchargé: 5 919 / 783

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
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

Pour les "Membres Club", vous pouvez 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

Commentaires et avis

signaler à un administrateur
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 ?

signaler à un administrateur
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

signaler à un administrateur
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..

signaler à un administrateur
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

signaler à un administrateur
Commentaire de soso62fr le 14/04/2009 23:12:41

d'un fichier...*

signaler à un administrateur
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.

signaler à un administrateur
Commentaire de soso62fr le 25/04/2009 07:06:18

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

signaler à un administrateur
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;
}

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

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 4,477 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.