CHttpFile::QueryInfo
BOOL QueryInfo( DWORD dwInfoLevel, LPVOID lpvBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex = NULL ) const;
BOOL QueryInfo( DWORD dwInfoLevel, CString& str, LPDWORD dwIndex = NULL) const;
BOOL QueryInfo( DWORD dwInfoLevel, SYSTEMTIME* pSysTime, LPDWORD dwIndex = NULL ) const;
返回值:
如果成功,則返回非零值,否則為0。如果此調用失敗,可通過調用Win32的函式GetLastError來確定錯誤原因。
參數: dwInfoLevel 查詢屬性和下列指定所須信息標誌的組合: · HTTP_QUERY_CUSTOM 查找頭名稱並在輸出中返回lpvBuffer中的值。如果未找到,HTTP_QUERY_CUSTOM 產生斷言。
· HTTP_QUERY_FLAG_REQUEST_HEADERS 是典型的,此套用查詢請求頭,但一個套用也可通過使用此標記查詢請求頭。
· HTTP_QUERY_FLAG_SYSTEMTIME 對於那些值為日期/時間字元串的頭,如“Last-Modified-Time”,此標記返回如標準Win32SYSTEMTIME結構的頭值,而不需套用對數據進行文法分析映射。如果使用了此標記,你可能要使用SYSTEMTIME 覆蓋此函式。
· HTTP_QUERY_FLAG_NUMBER 對於那些值為數字的頭,如狀態號,此標記返回一個32位的數據。
請參閱說明部分以了解可能值的列表。
lpvBuffer 一個指向用於接收信息的緩衝區的指針。
lpdwBufferLength 在入口處,這是指向一個用位元組或位表示的包含數據緩衝區長度的值。請參閱說明部分以了解此參數的詳細信息。
lpdwIndex 一個指向基於零的頭索引的指針。可以為NULL。使用此標記來枚舉同名的多個頭。對於輸入,lpdwIndex表示返回的指定的頭的索引。對於輸出,lpdwIndex 表示下一個頭的索引。如果此索引找不到,則返回ERROR_HTTP_HEADER_NOT_FOUND。
str 接收返回信息的CString對象的參考值。
dwIndex 一個索引值。請參閱lpdwIndex。
pSysTime 一個指向Win32 SYSTEMTIME結構的指針。
說明:
調用此成員函式返回HTTP請求中的回答或請求頭。只有在SendRequest被成功調用或者一個CHttpFile對象被 OpenURL成功創建後,才能使用該成員函式。
你可從QueryInfo中獲取以下數據類型: · strings (預設)
· SYSTEMTIME (對於“Data:”“Expires:”等)
· DWORD (對於 STATUS_CODE,CONTENT_LENGTH等等)
當一個字元串被寫入緩衝區,且成員函式成功時,lpdwBufferLength 包含字元串的位元組長減一,去掉結束NULL字元的長度。
可能的dwInfoLevel值包括: · HTTP_QUERY_MIME_VERSION
· HTTP_QUERY_CONTENT_TYPE
· HTTP_QUERY_CONTENT_TRANSFER_ENCODING
· HTTP_QUERY_CONTENT_ID
· HTTP_QUERY_CONTENT_DESCRIPTION
· HTTP_QUERY_CONTENT_LENGTH
· HTTP_QUERY_ALLOWED_METHODS
· HTTP_QUERY_PUBLIC_METHODS
· HTTP_QUERY_DATE
· HTTP_QUERY_EXPIRES
· HTTP_QUERY_LAST_MODIFIED
· HTTP_QUERY_MESSAGE_ID
· HTTP_QUERY_URI
· HTTP_QUERY_DERIVED_FROM
· HTTP_QUERY_LANGUAGE
· HTTP_QUERY_COST
· HTTP_QUERY_WWW_LINK
· HTTP_QUERY_PRAGMA
· HTTP_QUERY_VERSION
· HTTP_QUERY_STATUS_CODE
· HTTP_QUERY_STATUS_TEXT
· HTTP_QUERY_RAW_HEADERS
· HTTP_QUERY_RAW_HEADERS_CRLF