采用VC/MFC进行HTTP编程时需要用到的类及相关函数
来源:互联网 发布:linux 内核调试kgd 编辑:程序博客网 时间:2024/06/05 21:14
以下介绍的类和相关函数全部属于WinINet,WinInet全称是Win32 Internet Extension,它提供一个通用的网络协议访问接口,关于WinInet的整体介绍参考WinINet基础。
需要用到的WinINet class:
CInternetSession
CInternetSession用来创建和初始化Internet会话,MSDN的解释是:“Creates and initializes a single or several simultaneous(同步、同时) Internet sessions and, if necessary, describes your connection to a proxy server.”。
主要用到的方法有:GetHttpConnection()、OpenURL()、Close()。
1. GetHttpConnection()
GetHttpConnection()方法用来完成HTTP连接,并返回一个CHttpConnection对象,“Call this member function to establish an HTTP connection and get a pointer to a CHttpConnection object.”。
典型应用:
2. OpenURL()
OpenURL() 方法用来向HTTP服务器发送指定的请求,“Call this member function to send the specified request to the HTTP server and allow the client to specify additional RFC822, MIME, or HTTP headers to send along with the request. ”。
典型应用:
3. Close()
“Call this member function when your application has finished using the CInternetSession object.”。
典型应用:
CHttpConnection
CHttpConnection用来管理HTTP连接,“Manages your connection to an HTTP server.”。
主要用到的方法有:OpenRequest ()、Close()。
1. OpenRequest ()
OpenRequest ()方法用来打开一个HTTP连接,并返回一个指向CHttpFile对象的指针,“Call this member function to open an HTTP connection.”。
其中Verb参数代表HTTP的请求方式(HTTP request type),可以设置为:HTTP_VERB_POST、HTTP_VERB_GET等等。MSDN中讲到:“If NULL, “GET” is used.”,但这种说法应该是不准确的,如果该参数设置为NULL,将使用“POST”方式,因为HTTP_VERB_POST被定义为0。而如果给该参数传递NULL指针,将触发一个assertion。ObjectName参数用于指定要请求的目标对象(target object),比如一个指定的文件。Version参数是HTTP协议版本,如果设置为NULL,将使用“HTTP/1.0”。
典型应用:
2. Close ()
Close()方法通常不使用,因为对于HTTP 1.1协议,有个keep-alive的属性, 就是所谓的持久连接,对于http这种大量的短连接的服务来说,开启持久连接可以节省大量的TCP连接过程的开销。一般可以在HTTP连接的使命结束之后调用Close()方法,例如自己封装的HTTP操作类的析构函数中。
典型应用:
CHttpFile
CHttpFile提供从HTTP服务器请求和读取文件的功能(函数),“Provides the functionality to request and read files on an HTTP server.”。
主要用到的方法有:AddRequestHeaders()、SendRequest()、QueryInfoStatusCode()、Read()、ReadString()、Close()。其中Read()、ReadString()和Close()继承自父类CInternetFile。
1. AddRequestHeaders ()
AddRequestHeaders () 方法用来给请求添加Headers,“Adds headers to the request sent to an HTTP server.”。
典型应用:
2. SendRequest ()
SendRequest() 方法用来向HTTP服务器发送一个请求,“Call this member function to send a request to an HTTP server.”。
典型应用:
3. QueryInfoStatusCode ()
QueryInfoStatusCode ()方法用来获取一个HTTP请求的状态码,“Retrieves the status code associated with an HTTP request”。
典型应用:
4. Read ()和ReadString()
Read ()和ReadString()方法用来读取字节数据或者字符流。
典型应用(Read()参考QueryInfoStatusCode()的典型应用):
需要注意的地方
(1)CHttpConnection、CHttpFile的指针,在用完之后需要调用其Close()方法,并且还要再delete一下指针,不然会有内存泄露。
(2)如果VC++项目采用Unicode编码,而从HTTP连接Read回来的数据是Multi-Byte编码,那么需要调用MultiByteToWideChar进行编码转换。如果VC++项目本就采用Multi-Byte编码,就不用做这个工作了。
需要用到的WinINet全局函数AfxParseURL
AfxParseURL全局函数用于解析一个URL字符串,并返回服务类型。
如果一个URL解析成功则返回非0值;如果为空URL或者不包含已知的服务类型则返回0值。例如用AfxParseURL解析URL:service://server/dir/dir/object.ext:port,执行成功后得到的值:
- 采用VC/MFC进行HTTP编程时需要用到的类及相关函数
- VC数据库编程 MFC中相关类
- 在使用SQL编程时需要用到的函数汇总,很有用。
- VC++的Unicode编程--以及相关函数
- 相关技术需要用到的jar
- MFC学习笔记 文本编程及相关函数
- 涉及网络编程时,需要用到的几个常用方法
- 涉及网络编程时,需要用到的几个常用方法
- 涉及网络编程时,需要用到的几个常用方法
- 做ASP小偷时.经常需要用到的函数.
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- VC++6.0中用MFC进行COM编程
- 杭电 2015
- nyoj-286-动物统计
- Unity3D三维标签
- 郑厂长系列故事——体检
- ExecutorService线程池
- 采用VC/MFC进行HTTP编程时需要用到的类及相关函数
- GPU高性能计算与图像处理
- tr有一个单击事件,其中有个td有一个checkbox,当我单击checkbox时不触发tr的事件,注意tr的单击事件是JavaScript写的且带了参数!
- 4G(LTE)背后的技术和利益纠结——VoIP,VoLTE,SIP,IMS的前世今生
- ajax json 显示数据
- jquery 的ajax 应用
- POJ 3905 - Perfect Election 简单2-sat
- Linux下,Weblogic开机启动
- Dev c++ No rule to make target问题解决