MFC 读取http文件服务器上的文件列表,并选择文件进行下载

MFC 读取http文件服务器上的文件列表,并选择文件进行下载,第1张

你需要学会动态网页制作,至少简单的生成TXT文本,就是网站WEB程序读取目录中的文件列表,以TXT或XML输出

你还需要学会MFC网络编程,就是MFC程序访问/下载某个网址的网页,其实就是读取/下载网站WEB程序动态生成的TXT或者XML内容

当然你也可以静态生成TXT或者XML放置在WEB服务器

显示的话,就是ListControl,ListView一类,可自绘

下载文件和下载/读取网页基本相同,只是网页是文本是string(当然原始也是BYTE[]),而文件就是很多个字节是BYTE[]

总结的话,就是一个是服务器端要放置有提供文件列表内容的文件

再一个就是MFC网络访问/读取这个文件,解析得到文件列表

学会使用ListControl

和读取网页一样,按字节接收即可

一、简单的说HTTP和FTP是不同的协议

HTTP是Hyper Text Transfer Protocol,超文本传输协议;

FTP是File Transfer Protocol,文件传输协议;

HTTP是面向网页的,而FTP是面向文件的。

二、详细的解释如下:

1FTP

(1)FTP比HTTP复杂

FTP和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

(2)FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

2HTTP

HTTP协议是什么

在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。

当浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。

HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http11。RFC 2616描述了HTTP协议的具体信息。

这个协议已经成为浏览器和Web站点之间的标准。

当我上网的时候底层是如何进行交互的?

当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张,一个pdf文件)。

HTTP工作的基础就是,连接一个服务器并开始传输文件到浏览器。

HTTP传输的基本过程

在http传输的过程中,被称为客户端的请求者向服务器请求一个文件。

最基本的过程是:

1 客户端连接一个主机;

2 服务器接收连接,

3 客户端请求一个文件,

4 服务器发送一个应答

1、客户与服务器建立连接;

2、客户向服务器提出请求;

3、服务器接受请求,并根据请求返回相应的文件作为应答;

4、客户与服务器关闭连接。

HTTP的性质:

1、HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。

2、HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。

扩展资料

http代理的作用:

1、突破自身IP访问限制,访问国外站点。如:教育网、169网等网络用户可以通过代理访问国外网站。

2、访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。

3、隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。

-http

/

  文件下载

 /

@RequestMapping("/downloadfile")

public void offLineResponseActiveFile(String resStr, HttpServletResponse response) {

    PrintWriter pw = null;

    StringBuffer sb = new StringBuffer();

    

    try {

        String fileName = "文件名";

        responsesetCharacterEncoding("UTF-8");

        responsesetContentType("application/x-msdownload");

        responseaddHeader("Cache-Control", "no-cache, no-store, must-revalidate");

        responseaddHeader("charset", "utf-8");

        responseaddHeader("Pragma", "no-cache");

        responsesetHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"; filename=utf-8''" + fileName );

        sbappend(resStr);

        pw = responsegetWriter();

        pwwrite(sbtoString());

        pwclose();

        responseflushBuffer();

    } catch (IOException e) {

        loggerinfo("下载文件出错");

        eprintStackTrace();

        if (pw != null) {

            pwclose();

        }

    } finally {

        if (pw != null) {

            pwclose();

        }

    }

}

resStr 字段传写入文件里的内容

文件协议主要用于访问本地计算机中的文件,就如同在windows资源管理器中打开文件一样,注意它是针对本地(本机)的,简单来说,文件协议是访问你本机的文件资源。

http访问本地html是在本地起了一台http服务器,然后你访问自己电脑上的本地服务器,http服务器再去访问你本机的文件资源。

再简单的说:文件协议只是纯粹的请求本地文件,http是架了服务器的。所以也有导致题主所说的某些api只能通过http访问的页面里能够调用。

用socket就行了。

和服务器建立请求。

然后发送请求报文"\r\n\r\n"结束之后是数据。

post分为,application/x-www-form-urlencoded和multipart/form-data boundary=

要是上传文件,就得使用multipart/form-data boundary=

服务器那边根据boundary来解析出数据。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » MFC 读取http文件服务器上的文件列表,并选择文件进行下载

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情