Testen ob Internetseite online



  • hallo,
    ich möchte irgendwie überprüfen ob eine Seite online ist. Also ob das Dokument noch besteht.
    wen ich das mit InternetCheckConnection machen geht das zwar, aber wen eine Fehlerseite kommt sagt mir die Funktion die Seite sei noch online.



  • wie sieht den die http response der fehlerseite aus? doch nicht '200 OK' oder?



  • und wie bekomm ich den? Mit GetLastError hab ichs nicht geschafft



  • burnner schrieb:

    und wie bekomm ich den?

    na du schickst dem server ein http request (mit'm tcp/ip socket auf port 80) und dann bekommste 'ne antwort (http-header + daten). die erste zeile ist "HTTP/1.0 200 OK\r\n" wenn die seite da ist. guckst du: http://www.jmarshall.com/easy/http/



  • hmm ok.. im moment kann ich nun verbindungen zu einem server aufbauen.. doch leider antwortet mir nicht jeder?!? (wobei die seiten erreichbar sind)

    GET /path/file.html HTTP/1.1
    Host: www.host1.com

    so sieht das aus wo ich sende



  • Wenn du eh schon die WinInet-Funktionen (InternetCheckConnection) nutzt dürfte es auch so gehen:

    HINTERNET hConn;
    DWORD statusCode;
    DWORD statusCodeSize;
    DWORD headerIndex;
    
    // iNet Verbindung aufbauen:
    // InternetConnect(...)...
    
    hConn=InternetOpenUrl(hInternet,"http://www.beispiel.de/blupp.html",NULL,NULL,INTERNET_FLAG_RELOAD,NULL);
    if (!hConn)
    {
        // Verbindung konnte nicht hergestellt werden
    }
    else
    {
       statusCodeSize=sizeof(DWORD);
       headerIndex=0;
           HttpQueryInfo(hConn,HTTP_QUERY_STATUS_CODE,&statusCode,&statusCodeSize,&headerIndex);
       if (statusCode==HTTP_STATUS_OK)
       {
           // URL erfolgreich aufgerufen!
       }      
       InternetCloseHandle(hConn);
    }
    
    // iNet Verbindung schließen:
    // InternetCloseHandle(...);
    

    (Quellcode ungestestet!, evtl. müsste man mehr Status-Codes prüfen...)



  • Hmm kann sein das das funktioniert.. Aber ich hab das nun mitm Winsock.. nun intersssiert mich nur warum einige Server nicht antworten (die Packete sind genau diesem wie im Firefox hab ich mit nem packsniffer angeschaut)

    EDIT: PRoblem gelöst habn \r vergessen


Anmelden zum Antworten