HTML Seiten sind verrückt? :D



  • Ich verstehe jetzt garnichts mehr,
    Yahoo, Google und Co. wollen mir nicht auf meinen HTTP Request antworten...

    Gesendet:

    GET / HTTP/1.1
    Accept: */*
    User-Agent: WININET Sample Program
    Host: www.google.de
    Cookie: *censored*
    

    Recieved:

    HTTP/1.1 200 OK
    Cache-Control: private
    Content-Type: text/html   
    Server: GWS/2.1
    Transfer-Encoding: chunked //<- was zum Teufel?
    Date: Tue, 19 Dec 2006 18:09:02 GMT
    

    Und wenn ich es mit dem browser mache:

    GET / HTTP/1.1
    Host: www.google.de
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1) Gecko/20061010 Firefox/2.0
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Cookie: *monster-censore*
    

    Und jetzt browser antwort

    HTTP/1.1 200 OK
    Cache-Control: private
    Content-Type: text/html  
    Content-Encoding: gzip     //hier ist es "sauber" und nicht chunked...
    Server: GWS/2.1
    Content-Length: 1738 //<- Wah!!! Hier wurde ne dicke Antwort gesendet und bei meinem Programm nicht,
                         //WARUM????? -.-
    Date: Tue, 19 Dec 2006 18:10:29 GMT
    

    Vielleicht habt ihr eine Erklärung für das unerklärliche 👍

    Danke schonmal



  • Siehe hier für Chunked:
    http://www.ingokallenbach.de/artikel/web/http-misc.htm

    Als HTTP/1.1 Client sagt der HTTP-Standard, dass du mit chunked klar kommen musst 😉
    Als HTTP/1.0 Client wirst du vermutlich mit chunked nicht beliefert 😉



  • geeky schrieb:

    Siehe hier für Chunked:
    http://www.ingokallenbach.de/artikel/web/http-misc.htm

    Als HTTP/1.1 Client sagt der HTTP-Standard, dass du mit chunked klar kommen musst 😉
    Als HTTP/1.0 Client wirst du vermutlich mit chunked nicht beliefert 😉

    Dann ist mein Programm nicht mehr portabel...

    > http://support.microsoft.com/kb/258425/de

    Langsam krieg ich wut auf microsoft 😡 😡 😡



  • wilkommen bei Lino & Co 😉



  • Je nachdem für welche Windows-Version du programmierst, kannst du auch WinHTTP nehmen:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winhttp/http/winhttp_sessions_overview.asp
    (Läuft aber glaube ich erst ab WinXP...)

    Oder such die ne Komponente bei codeproject oder so oder bau dir selbst eine mit Winsock 😉

    Oder die WebRequest-Klasse aus dem .NET-Framework benutzen...



  • geeky schrieb:

    Je nachdem für welche Windows-Version du programmierst, kannst du auch WinHTTP nehmen:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winhttp/http/winhttp_sessions_overview.asp
    (Läuft aber glaube ich erst ab WinXP...)

    Oder such die ne Komponente bei codeproject oder so oder bau dir selbst eine mit Winsock 😉

    Oder die WebRequest-Klasse aus dem .NET-Framework benutzen...

    Hätte ich das ehr gewusst...
    (http://www.c-plusplus.net/forum/viewtopic-var-t-is-167982.html)^^

    hmmm....
    ich vertraue noch ein letztes mal auf microsoft und nehme WinHTTP, wenn das nicht klappt dann nehme ich Socket 😞



  • Hat jetzt iergendjemand ne Ahnung warum das hier nicht geht?

    void main()
    {
    	char cMsg[2000] = "";
    	bool lOk = false;
    
    	struct sockaddr_in GoogleServer;
    
        WORD wVersionRequested;
        WSADATA wsaData;
    	wVersionRequested = MAKEWORD( 1, 0 );
    	if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
        {
    		// Make Socket
           GoogleServer.sin_family      = AF_INET;
           GoogleServer.sin_port        = htons( 80 );
           GoogleServer.sin_addr.s_addr = inet_addr( "216.239.59.104" ); //wwp.google.de
    
           int GoogleSock = socket( AF_INET, SOCK_STREAM, 0 );
    
    	   // Connect Server
           if ( connect( GoogleSock, (struct sockaddr *) &GoogleServer, sizeof( GoogleServer ) ) == 0 )
           {
    		   strcpy( cMsg, "GET /firefox?client=firefox-a&rls=org.mozilla:de:official HTTP/1.0\n\n" );
    		   lOk = ( send( GoogleSock, cMsg, strlen( cMsg ), 0 ) >= 0 );
    		   if ( lOk )
                   recv( GoogleSock, cMsg, 2000, 0 );
    		   closesocket( GoogleSock );
    		}
    
           // Close Winsock
           WSACleanup();
       }
    
    	system("pause");
    }
    

    output:

    Drücken sie eine Taste um das Programm zu beenden...
    

    :-$

    Danke schonmal für eure Hilfe


Anmelden zum Antworten