Http Request Cookie auslesen...



  • hey com,
    undzwar versuche ich nach einen http request einen Cookie auszulesen, aber es wird mir nur das packet ausgegeben (in diesem fall halt der sourcecode der internet seite)

    hier mein code

    HINTERNET inet = InternetOpen("MyAgent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
             HINTERNET connection;
             HINTERNET request;
             unsigned long flags;
             unsigned long len;
             connection = InternetConnect(inet, TEXT(domainurl), INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
             flags = INTERNET_FLAG_PRAGMA_NOCACHE;
             request = HttpOpenRequest(connection, "POST", TEXT(scripturl), NULL, NULL, NULL, flags, 1);
             HttpSendRequest(request, "Content-Type: application/x-www-form-urlencoded", 47, (void*)stringtosend, strlen(stringtosend));
             std::stringstream CompleteBuffer;
             do{
                 char antwortbuffer[10000];
                 InternetReadFile(request, antwortbuffer, sizeof antwortbuffer, &len);
                 antwortbuffer[len] = '\0';
                 CompleteBuffer << antwortbuffer;
               } while(len);
             InternetCloseHandle(request);
             InternetCloseHandle(connection);
             InternetCloseHandle(inet);
    
    MessageBox(NULL,CompleteBuffer.str().c_str(),"Server Antwort",MB_OK);
    

    wie gesagt gibt

    InternetReadFile(request, antwortbuffer, sizeof antwortbuffer, &len);
    

    mir nicht das aus was ich will, da der komplette header fehlt...
    mit wireshark seh ich aber das im header der cookie steht 😞

    auf sockets kann ich leider nicht umsteigen, weil es zu kompliziert ist da die webseite viele cookies haben will und auch viele sachen berechnet haben will und die winapi mir da viel arbeit abnimmt

    deswegen muss ich diesen code verwenden allerdings das er mir den header anzeigt

    danke



  • Mit HttpQueryInfo kommt man die Response-Header



  • Danke allerdings bekomme ich bei dem folgenden code immer nur ein H zurück und keinen Fehler oder sonstiges

    char* getheaders(HINTERNET hRequest){
    DWORD dwInfoLevel=HTTP_QUERY_RAW_HEADERS_CRLF;
    DWORD dwInfoBufferLength=10;
    char* pInfoBuffer=(char*)malloc(dwInfoBufferLength+1);
    while(!HttpQueryInfo(hRequest,dwInfoLevel,pInfoBuffer,&dwInfoBufferLength,NULL)){
    if (GetLastError()==ERROR_INSUFFICIENT_BUFFER){
    free(pInfoBuffer);
    pInfoBuffer=(char*)malloc(dwInfoBufferLength+1);
    }else{
    fprintf(stderr,"HttpQueryInfo failed, error = %d (0x%x)n",GetLastError(),GetLastError());
    break;
    }
    }
    pInfoBuffer[dwInfoBufferLength] = '';
    return pInfoBuffer;
    }

    Was kann ich da tun?



  • Steht das Projekt evtl auf unicode? Dann TCHAR statt char verwenden!



  • DANKE
    es geht jetzt nachdem ich es auf multibyte umgestellt habe


Anmelden zum Antworten