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) |