вопрос по winhttp(Cи)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SVAROG, 25 Aug 2009.

  1. SVAROG

    SVAROG Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    424
    Likes Received:
    86
    Reputations:
    -1
    кто работал с этой штукой? как куки получить?
    получаю с помощью функции WinHttpQueryHeaders
    Code:
    WinHttpQueryHeaders( hRequest, 
                                           WINHTTP_QUERY_RAW_HEADERS ,
                                           WINHTTP_HEADER_NAME_BY_INDEX, 
                                           buffer, &dwDataSize, 
                                           WINHTTP_NO_HEADER_INDEX);
    
    
    однако в buffer пусто :eek: , в примере от мелкомягких мало что понял
     
  2. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Судя по примеру с мсдн"а,
    сперва вызывается эта ф-ция для получения размера буфера:
    Code:
    [b]// First, use WinHttpQueryHeaders to obtain the size of the buffer.[/b]
    DWORD dwSize = 0;
            WinHttpQueryHeaders( hRequest, WINHTTP_QUERY_RAW_HEADERS_CRLF,
                                 WINHTTP_HEADER_NAME_BY_INDEX, NULL, 
                                 &dwSize, WINHTTP_NO_HEADER_INDEX);
    а далее уже для получения хедера
    Code:
            // Allocate memory for the buffer.
            if( GetLastError( ) == ERROR_INSUFFICIENT_BUFFER )
            {
                lpOutBuffer = new WCHAR[dwSize/sizeof(WCHAR)];
    
                [b]// Now, use WinHttpQueryHeaders to retrieve the header.[/b]
                bResults = WinHttpQueryHeaders( hRequest, 
                                           WINHTTP_QUERY_RAW_HEADERS_CRLF,
                                           WINHTTP_HEADER_NAME_BY_INDEX, 
                                           lpOutBuffer, &dwSize, 
                                           WINHTTP_NO_HEADER_INDEX);
            }
    
     
    1 person likes this.