Http - Client



  • Wie gesagt stringfunktionen funktionieren definitiv nicht. memcpy funktioniert. Du brauchst aber etwas Zeigerarithmetik.
    Kurt



  • Will mal nicht so sein. Ungefähr so sollte es funktionieren ( ungetestet )

    char * tmp = 0;
      unsigned int sz_read;
      while( (n = read(s, buf, LINELEN)) > 0) {
            if (!tmp){
                tmp = (char*) malloc( sz_read );
                memcpy( tmp, buf, n );
            } else {
                tmp = (char*) realloc( tmp, sz_read );
                memcpy( tmp+sz_read, buf, n );
            }
            sz_read += n;
      }
    

    Kurt



  • Danke für den Tip.

    Hab das sz_read += n; vor dem if verschoben. Die Datei wird heruntergeladen ist aber unvollstandig(etwa 100 Byte) fehlen.
    Der Header schaut etwas komisch aus:

    HTTP/1.0 200 OK^M
    Content-Type: image/gif^M
    Last-Modified: Mon, 25 Apr 2005 21:07:03 GMT^M
    Expires: Sun, 17 Jan 2038 19:14:07 GMT^M
    ^@^@^@^@9?^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Server: GWS/2.1^M
    Content-Length: 9121^M
    Date: Sun, 04 Dec 2005 15:40:51 GMT^M
    Connection: Keep-Alive^M
    ^M
    

    Wo kommen die ganzen @@^@ her?



  • Kleiner fehler im code ( wollte dich testen 😉 )

    char * tmp = 0;
      unsigned int sz_read = 0;
      while( (n = read(s, buf, LINELEN)) > 0) {
            if (!tmp){
                tmp = (char*) malloc( n );
                memcpy( tmp, buf, n );
            } else {
                tmp = (char*) realloc( tmp, sz_read );
                memcpy( tmp+sz_read, buf, n );
            }
            sz_read += n;
      }
    

    Kurt



  • Endlich klappt es!!!

    Danke an alle für die guten Tips, vor allem Kurt. 🙂


Anmelden zum Antworten