QueryInfo
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