CHttpConnection 类

管理与 HTTP 服务器的连接。

语法

class CHttpConnection : public CInternetConnection

成员

公共构造函数

名称 描述
CHttpConnection::CHttpConnection 创建一个 CHttpConnection 对象。

公共方法

名称 描述
CHttpConnection::OpenRequest 创建 HTTP 请求。

备注

HTTP 是 MFC WinInet 类实现的三种 Internet 服务器协议之一。

CHttpConnection 包含一个构造函数和一个成员函数 (OpenRequest),后者管理与某个使用 HTTP 协议的服务器的连接。

若要与 HTTP 服务器通信,必须先创建 CInternetSession 的实例,然后创建 CHttpConnection 对象。 绝不要直接创建 CHttpConnection 对象,而应调用 CInternetSession::GetHttpConnection,后者创建 CHttpConnection 对象并返回指向它的指针。

若要详细了解 CHttpConnection 如何与其他 MFC Internet 类配合工作,请参阅使用 WinInet 进行 Internet 编程一文。 若要详细了解如何使用其他两个受支持的 Internet 协议(gopher 和 FTP)连接到服务器,请参阅 CGopherConnection 类和 CFtpConnection 类。

继承层次结构

CObject

CInternetConnection

CHttpConnection

要求

标头:afxinet.h

CHttpConnection::CHttpConnection

调用此成员函数来构造 CHttpConnection 对象。

CHttpConnection(
    CInternetSession* pSession,
    HINTERNET hConnected,
    LPCTSTR pstrServer,
    DWORD_PTR dwContext);

CHttpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 1);

CHttpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    DWORD dwFlags,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 1);

参数

pSession
指向 CInternetSession 对象的指针。

hConnected
Internet 连接的句柄。

pstrServer
指向包含服务器名称的字符串的指针。

dwContext
CInternetConnection 对象的上下文标识符。 有关 dwContext 的详细信息,请参阅“注解”部分。

nPort
标识此连接的 Internet 端口的数字。

pstrUserName
指向一个以 null 结尾的字符串的指针,该字符串指定要登录的用户的名称。 如果为 NULL,默认为匿名。

pstrPassword
一个指向以 null 结尾的字符串的指针,该字符串指定用于登录的密码。 如果 pstrPassword 和 pstrUserName 均为 NULL,则默认匿名密码是用户的电子邮件名称。 如果 pstrPassword 为 NULL 或空字符串,但 pstrUserName 不是 NULL,则使用空白密码。 下表描述了 pstrUserName 和 pstrPassword 的四种可能设置的行为

pstrUserName pstrPassword 发送到 FTP 服务器的用户名 发送到 FTP 服务器的密码
NULL 或“ ” NULL 或“ ” “匿名” 用户的电子邮件名称
非 NULL 字符串 NULL 或“ ” pstrUserName " "
Null 非 NULL 字符串 ERROR ERROR
非 NULL 字符串 非 NULL 字符串 pstrUserName pstrPassword

dwFlags
INTERNET_FLAG_* 标志的任意组合。 有关 dwFlags 值的说明,请参阅 CHttpConnection::OpenRequest 的“注解”部分的表。

备注

千万不要直接创建 CHttpConnection, 而要通过调用 CInternetSession::GetHttpConnection 来创建对象。

CHttpConnection::OpenRequest

调用此成员函数可打开 HTTP 连接。

CHttpFile* OpenRequest(
    LPCTSTR pstrVerb,
    LPCTSTR pstrObjectName,
    LPCTSTR pstrReferer = NULL,
    DWORD_PTR dwContext = 1,
    LPCTSTR* ppstrAcceptTypes = NULL,
    LPCTSTR pstrVersion = NULL,
    DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);

CHttpFile* OpenRequest(
    int nVerb,
    LPCTSTR pstrObjectName,
    LPCTSTR pstrReferer = NULL,
    DWORD_PTR dwContext = 1,
    LPCTSTR* ppstrAcceptTypes = NULL,
    LPCTSTR pstrVersion = NULL,
    DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);

参数

pstrVerb
一个指向字符串的指针,字符串包含要在请求中使用的谓词。 如果为 NULL,则使用“GET”。

pstrObjectName
一个指向字符串的指针,字符串包含指定谓词的目标对象。 此字符串通常是文件名、可执行模块或搜索说明符。

pstrReferer
一个指向字符串的指针,字符串指定文档(已从其获取请求 (pstrObjectName) 中的 URL)的地址 (URL)。 如果为 NULL,则未指定 HTTP 标头。

dwContext
OpenRequest 操作的上下文标识符。 有关 dwContext 的详细信息,请参阅“注解”部分。

ppstrAcceptTypes
一个指向以 null 结尾的 LPCTSTR 指针数组的指针,而 LPCTSTR 指针则指向指示客户端接受的内容类型的字符串。 如果 ppstrAcceptTypes 为 NULL,则服务器会解释:客户端仅接受类型为“text/*”的文档(即只接受文本文档,而不接受图片或其他二进制文件)。 内容类型等效于 CGI 变量 CONTENT_TYPE,该变量标识附加了信息的查询(如 HTTP POST 和 PUT)的数据类型。

pstrVersion
一个指向定义 HTTP 版本的字符串的指针。 如果为 NULL,则使用“HTTP/1.0”。

dwFlags
INTERNET_FLAG_* 标志的任意组合。 有关可能的 dwFlags 值的说明,请参阅“注解”部分。

nVerb
与 HTTP 请求类型关联的数字。 可以是以下值之一:

HTTP 请求类型 nVerb
HTTP_VERB_POST 0
HTTP_VERB_GET 1
HTTP_VERB_HEAD 2
HTTP_VERB_PUT 3
HTTP_VERB_LINK 4
HTTP_VERB_DELETE 5
HTTP_VERB_UNLINK 6

返回值

一个指向请求的 CHttpFile 对象的指针。

备注

dwFlags 可以是以下项之一:

Internet 标志 说明
INTERNET_FLAG_RELOAD 强制从源服务器下载请求的文件、对象或目录列表,而不是从缓存下载。
INTERNET_FLAG_DONT_CACHE 不将返回的实体添加到缓存中。
INTERNET_FLAG_MAKE_PERSISTENT 将返回的实体作为永久性实体添加到缓存中。 这意味着标准缓存清理、一致性检查或垃圾回收无法从缓存中删除此项。
INTERNET_FLAG_SECURE 使用安全事务语义。 它转换为使用 SSL/PCT,仅在 HTTP 请求中有意义
INTERNET_FLAG_NO_AUTO_REDIRECT 仅与 HTTP 配合使用,指定不应在 CHttpFile::SendRequest 中自动处理重定向。

替代 dwContext 默认值,以将上下文标识符设置为所选值。 上下文标识符与其 CInternetSession 对象创建的 CHttpConnection 对象的这个特定操作相关联。 值返回到 CInternetSession::OnStatusCallback,以提供标识它的操作的状态。 有关上下文标识符的详细信息,请参阅 Internet 首要步骤:WinInet 一文。

此函数可能引发异常。

另请参阅

CInternetConnection 类
层次结构图
CInternetConnection 类
CHttpFile 类