Télécharger fichier via HTTP sous linux

rclsilver02 Messages postés 130 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 10 février 2012 - 16 oct. 2004 à 23:31
ce18ce Messages postés 5 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 22 août 2006 - 22 août 2006 à 16:18
Bonjour, je cherche depuis quelque temps comment télécharger un fichier via http sous linux. j'ai bricolé un tit truc avec socket() et cie mais c'est pas stable et j'ai du mal a gerer les erreurs et le header HTTP. autrement dit je chercherai un truc semblable a urlmon.h pour linux ou alors un bout de code avec les socket qui gere assez bien les erreurs (et qui fonctionne ;P).
Je dois aussi compiler en C uniquement

Merci d'avance .

6 réponses

MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
17 oct. 2004 à 11:03
Je crois que ce que tu recherche s appelle la libcurl. C est une librairie qui te permet de recuperer une page HTTP (presque) en un seul appel de fonction. Elle fait aussi d autres choses (dont HTTPS), et est ecrite en C (meme si elle possede des bindings pour de tres nombreux langages).

pour voir ce que c est :

http://curl.mirror.internet.tp/libcurl/c/
0
rclsilver02 Messages postés 130 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 10 février 2012
17 oct. 2004 à 15:07
Merci :D je vais voir ça a l'air d'etre bon ! merci beaucoup !
0
rclsilver02 Messages postés 130 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 10 février 2012
17 oct. 2004 à 16:03
Alors voila j'ai un tit pb. J'ai téléchargé le .tar.gz de curl (curl-7.12.1.tar.gz), je l'ai décompressé et j'ai ecrit (en root) :
./configure
make
make install


et ensuite j'ai crée un fichier test_curl.c et j'ai mis ça dedans :
#include <stdio.h>
#include <curl/curl.h>

int main()
{
        CURL *curl;
        CURLcode res;

        curl = curl_easy_init();

        if (!curl)
        {
                printf("Erreur lors de l'initialisation de cURL\n");
                return 0;
        }

        curl_easy_setopt(curl, CURLOPT_URL, "127.0.0.1");
        res = curl_easy_perform(curl);

        curl_easy_cleanup(curl);

        return 0;
}


j'ai ensuite compilé comme ça :
gcc test_curl.c -o curl -lcurl


et quand je lance le programme ça m'ecrit :
./curl: error while loading shared libraries: libcurl.so.3: cannot open shared object file: No such file or directory


qu'est ce que j'ai fait qui n'allait pas ? :/ merci d'avance. ah aussi... si je comprends bien le contenu de ma page est dans res non ?
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
17 oct. 2004 à 21:22
ta librairie doit etre mal placee, (ailleurs que dans le chemin de recherche de ld.so). Regarde l emplacement de ta lib, et si ca marche toujours pas essaye de compiler en static (-static sur la ligne de commande de gcc).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rclsilver02 Messages postés 130 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 10 février 2012
17 oct. 2004 à 23:09
Alors voila j'ai ete voir dans /usr/lib et quand j'fais ls *curl* j'vois ça :
[root@localhost lib]# ls *curl*
libcurl.so.2@  libcurl.so.2.0.2*


donc jai essayé de compil avec static
[thomas@localhost test_dwnl_page_html]$ gcc test_curl.c -o curl -lcurl -static
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status


voila ce que ça me donne, j'ai aussi essayé de mettre -L/usr/lib avant le -lcurl, mais pareil a l'execution ça foire :/ bizzare non ? :o
0
ce18ce Messages postés 5 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 22 août 2006
22 août 2006 à 16:18
Bonjour, moi mon problème avec curl c'est que je ne sais pas comment récupérer le code source d'une page web à cause d'un proxy. Quelqu'un saurait comment faire pour franchir mon script proxy? merci
0
Rejoignez-nous