• MFCWinInet学习


    http://blog.csdn.net/segen_jaa/article/details/6278167

     

    背景:

    功能:服务端下载文件

    服务端:用Java写Sevlet进行有效性验证

    客户端:用C++写程序,获取文件

     

    C++使用下载类为MFCWinInet,下载协议为HTTP。

    MFCWinInet下载优缺点如下。

    优点:使用封装类,直接调用相关方法,使用方便。

    缺点:多线程下载,线程数受注册表限制,XP下默认为两个。

     

    WinInet(“Windows Internet”)支持三种协议:

    1、HTTP:Hypertext Transfer Protocol(超文本传输协议);

    2、FTP:File Transfer Protocol(文件传输协议);

    3、Gopher文件传输协议。

     

    MFCWinInet HTTP协议,使用类为:

    1、CHttpConnection:管理与HTTP服务器的连接。

    2、CInternetSession.

    3、CHttpFile:提供向HTTP服务器中请求和读取的功能。

     

    要与一个HTTP服务器通讯,必须先构造一个CInternetSession的实例,然后构造一个CHttpConnection对象。不能直接构造一个CHttpConnection对象,而是调用CInternetSession::GetHttpConnection,创建CHttpConnection对象并返回其指针。

    #include <afxinet.h>

    eg.

    if(AfxParseURL(URL,server_type,strServer,path,port))

    {

           return;

    }

     

    CInternetSession * m_inernetSession = new CinternetSession();

    CHttpConnection * m_httpConnection =

    m_inernetSession->GetHttpConnection(strServer, port,);

     

    CHttpFile * m_httpfile = m_httpConnection ->OpenRequest();

    //使用ChttpFile建立发送的Http报文

     

    CString strHeadInfo = _T("");

    // 发送Head请求

    pHttpFile->SendRequest(strHeadInfo)

    if (pHttpFile->QueryInfoStatusCode(dwStatusCode)

    && (dwStatusCode >= 200 && dwStatusCode < 300))

    {

    pHttpFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strResponse);

    }

    else

    {

           return;

    }

     

    //对strResponse返回值解析

    if (ParseResponse(strResponse))

    {

           return;

    }

     

    unsigned char bufRec[BUFF_SIZE] = {0};

    UINT uReadSize = 0;

    while (true)

    {

    ZeroMemory(bufRec, BUFF_SIZE);

    uReadSize = pHttpFile->Read(bufRec, BUFF_SIZE);

    if (uReadSize <= 0)

    {

    break;

    }

    tempFile.Write(bufRec, uReadSize);

    }

  • 相关阅读:
    数据库SQL优化大总结之 百万级数据库优化方案
    2020春季学期第九周学习总结
    2020春季学期第八周学习总结
    《一线架构师实践指南》第三章Refined Architecture阶段学习总结
    2020春季学期第七周学习总结
    2020春季学期第六周学习总结
    《软件架构设计》阅读笔记三
    2020春季学期第四周学习总结
    数据分析练习-3.14进度
    《软件架构设计》阅读笔记二
  • 原文地址:https://www.cnblogs.com/liaocheng/p/4243548.html
Copyright © 2020-2023  润新知