HTTP-REQUEST Datei Download



  • hy
    ich versuche ein programm zu schreiben, dass bestimmte bilder von einer website herunterläd...
    bisher habee ich es mit diesm http-request versucht....

    GET spacer.gif HTTP/1.1\r\nHost: www.gagym.de\r\nAccept:image/gif\r\n\r\n"
    

    Aber dass will nicht recht klappen..
    ICh schreibe den output in eine gif datei.
    Die kann ich nicht mit bildbearbeitungsprogrammen öffnen und wenn ich sie mit dem editor öffne sehe ich ,dass da auch html-Code mit drin ist...
    wie kann ich mein request ändern damit ich dass richtige bekomme?



  • Normalerweise kommt da ein Header mit zurück. Einfach alles bis zum Ende des Headers (\r\n\r\n) ignorieren. (Oder rasch überprüfen obs Sinn macht)



  • ja ganz unten in der datei steht content-type:image/gif aber das macht daraus keine gif datei...



  • Probier's mal mit

    GET /spacer.gif HTTP/1.1
    Host: www.gagym.de
    Accept: image/gif
    

    (Wichtig: /spacer.gif)

    E: Wobei die Datei spacer.gif auf www.gagym.de als nicht existent angezeigt wird. Stattdessen existiert die Datei auf einem anderen Pfad: http://www.gagym.de/_img/spacer.gif - Vllt. liegt's daran? Dann muesste die Abfrage so lauten:

    GET /_img/spacer.gif HTTP/1.1
    Host: www.gagym.de
    Accept: image/gif
    


  • ich hab es mit deinem oben gegebenem request versucht aber da kommt blos dass raus:....

    HTTP/1.1 200 OK
    Date: Fri, 12 Mar 2010 17:14:09 GMT
    Server: Apache/2.2.14 (Unix)
    Last-Modified: Tue, 21 Nov 2006 19:09:57 GMT
    ETag: "224788-2b-422c6947e0b40"
    Accept-Ranges: bytes
    Content-Length: 43
    Content-Type: image/gif
    
    GIF89a
    


  • Dein Programm schreibt die Datei am Ende aber im binären Modus oder?



  • eigentlich öffne ich die datei so

    FILE*f=fopen("bild.gif","w+b");
    


  • klg71 schrieb:

    ich hab es mit deinem oben gegebenem request versucht aber da kommt blos dass raus:....

    so sieht das http-ergebnis aus. ein paar infos und nach dem \n\n das bild was du wolltest



  • DrGreenthumb schrieb:

    klg71 schrieb:

    ich hab es mit deinem oben gegebenem request versucht aber da kommt blos dass raus:....

    so sieht das http-ergebnis aus. ein paar infos und nach dem \n\n das bild was du wolltest

    Dabei erhält man mit Content-Length die Länge des Bilds. Vorausgesetzt Content-Length ist gesetzt.


Log in to reply