Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1111976
  • 博文数量: 143
  • 博客积分: 969
  • 博客等级: 准尉
  • 技术积分: 1765
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-30 12:09
文章分类

全部博文(143)

文章存档

2023年(4)

2021年(2)

2020年(4)

2019年(4)

2018年(33)

2017年(6)

2016年(13)

2014年(7)

2013年(23)

2012年(33)

2011年(14)

我的朋友

分类: C/C++

2011-08-17 16:23:24

http访问流程及WinnetAPI:
1. 首先我们打开一个Session获得一个HINTERNET session句柄; 
  HINTERNET hopen =
  ::InternetOpen(_T("HttpPoster"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0)
2. 然后我们使用这个session句柄与服务器连接得到一个HINTERNET connect句柄;
 HINTERNET hConn =
 ::InternetConnect(hopen , m_HostName, m_Port, m_UserName, m_Password, INTERNET_SERVICE_HTTP, 0, reinterpret_cast(this));

3. 这样我们使用这个connect句柄来打开Http 请求得到一个HINTERNET request句柄;
HINTERNET hConn = 
::InternetConnect(hConn , m_HostName, m_Port, m_UserName, m_Password, INTERNET_SERVICE_HTTP, 0, reinterpret_cast(this)); 
4. 设置请求头
 ::HttpAddRequestHeaders(m_hRequest, ContentType, ContentType.GetLength(), 
HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE);
5. 这样我们就可以使用这个request句柄来发送数据与读取从服务器返回的数据; 
 ::InternetWriteFile(m_hRequest, lpBuffer + nPosInBuffer, nNeedWrite, &nWritten);
 ::InternetReadFile(m_hRequest, pBuf, nSize, &nReaded) && nReaded;
6. 最后依次关闭request,connect,session句柄。
::HttpEndRequest(m_hRequest, NULL, 0,reinterpret_cast(this));
::InternetCloseHandle(m_hInet);
阅读(1866) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~