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

请参阅:
CInternetFile, CHttpConnection::OpenRequest, CFtpConnection, CGopherConnection, CInternetConnection