http request und replay



  • Was gehört zu einem HTTP request dazu damit der Server antworten kann?

    Ich habe jetzt einen kleinen Client zusammengebastelt, aber mir antwortet nur mein eigener Server, sonst keiner ( kein wunder, denn ich weis ja was mein Server erwartet damit der mir antworten kann 😃 )

    Im einzelnen löse ich erst mal den servernamen auf

    struct hostent* h;
    h = gethostbyname( host.c_str( ) ); /* hier www.youtube.com */
    

    erstelle dann einen Streamsocket, binde den und connecte - alles klappt ( anscheind ).

    Dann habe sende ich eine anfrage mit

    int rc = 0;
        int gSend = 0;
        do
        {
            gSend = send ( fd, request, strlen( request ), 0 ); // request ist functionsparameter char*
        } while ( rc += gSend < strlen ( request ) || gSend < 0 );
    

    und warte mit select ( ... ) auf antwort welchen ich dann mit

    rc = recv( fd, buffer, BUFFER_SIZE, 0 );
    

    empfange.

    als request sende ich ( habe auch mit nur youtube, also ohne www probiert )
    "GET / HTTP/1.1\nHost: www.youtube.com\nConnection: close\nAccept-Encoding: gzip\nAccept-Charset: IISO-8859-1,UTF-8;q=0.7,;q=0.7\nCache-Control: no\nAccept-Language: de,en;q=0.7,en-us;q=0.3\n"*
    bekomme aber nichts zurück - fehlt da was?

    wie gesagt - wenn ich meinen eigenen Server anfrage, dann bekomme ich ein antwort, aber wieso klappt es bei anderen Servern nicht?



  • hi

    eine leerzeile fehlt am schluss. in deinem fall muss das ende '\n\n' sein.
    hier ein guter artikel aus unserem magazin ueber http
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-169861.html

    meep meep



  • Außerdem sollten Absätze neben Linefeed auch Cariage Return bieten. Absätze würden so aussehen:

    lalala\r\nlololo\r\nlelelele\r\n\r\n
    


  • Super Tutorial - hätte ich den früher gesehen, hätte ich bestimmt 6 Stunden gespart 👍

    Da fällt mir ein, ich hatte um 2 Stunden mit suchen nach einem C++ Socket als klasse oder Stream verbracht, aber nichts gefunden - obwohl ich swören könnte das ich mal was davon gehört habe - weiß einer wo es lebt?


Anmelden zum Antworten