acl  3.5.3.0
acl::http_download类 参考abstract

#include <http_download.hpp>

+ 类 acl::http_download 继承关系图:
+ acl::http_download 的协作图:

Public 成员函数

 http_download (const char *url, const char *addr=NULL)
 
virtual ~http_download ()
 
http_headerrequest_header () const
 
http_requestrequest () const
 
bool get (long long int range_from=-1, long long int range_to=-1, const char *req_body=NULL, size_t len=0)
 
bool reset (const char *url=NULL, const char *addr=NULL)
 
const char * get_url () const
 
const char * get_addr () const
 

Protected 成员函数

virtual bool on_response (http_client *conn)
 
virtual bool on_length (long long int n)
 
virtual bool on_save (const void *data, size_t len)=0
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

详细描述

在文件 http_download.hpp11 行定义.

构造及析构函数说明

◆ http_download()

acl::http_download::http_download ( const char *  url,
const char *  addr = NULL 
)

构造函数

参数
url{const char*} 文件在服务器上的 url 地址
addr{const char*} 非空时,设置服务器地址(格式为: ip[|domain]:port,否则服务器地址从 url 中提取

◆ ~http_download()

virtual acl::http_download::~http_download ( )
virtual

成员函数说明

◆ get()

bool acl::http_download::get ( long long int  range_from = -1,
long long int  range_to = -1,
const char *  req_body = NULL,
size_t  len = 0 
)

下载文件,当 range_from >= 0 且 range_to >= range_from 时自动 采用分段下载方式,否则采用全部下载方式

参数
range_from{acl_int64} 下载起始偏移位置,下标从 0 开始, 当该值 >= 0 且 range_to >= 本值时才采用分段下载方式
range_to{acl_int64} 下载结束偏移位置
req_body{const char*} 请求的数据体
len{size_t} req_body 非空时指明其长度
返回
{bool} 下载是否成功,如果返回 true 则表示下载成功,否则 可能是输入参数非法,或 URL 不存在,或服务器不支持断点传输,或 在下载过程中子类返回 false 禁止继续下载

◆ get_addr()

const char* acl::http_download::get_addr ( ) const

取得由构造函数或 reset 函数输入的 url 所得到的服务器地址,格式为: ip[|domain]:port

返回
{const char*} 返回 NULL 表示输入的 url 非法

◆ get_url()

const char* acl::http_download::get_url ( ) const

取得由构造函数或 reset 函数输入的 url

返回
{const char*} 返回 NULL 表示输入的 url 非法

◆ on_length()

virtual bool acl::http_download::on_length ( long long int  n)
protectedvirtual

当得到服务器返回完整文件长度后的回调函数

参数
n{__int64} 完整文件长度
返回
{bool} 若子类返回 false 则停止继续下载

◆ on_response()

virtual bool acl::http_download::on_response ( http_client conn)
protectedvirtual

当发送完 HTTP 请求数据后,读到 HTTP 服务器响应头后的回调函数

参数
conn{http_client*}
返回
{bool} 若子类返回 false 则停止继续下载

◆ on_save()

virtual bool acl::http_download::on_save ( const void *  data,
size_t  len 
)
protectedpure virtual

下载过程中,边下载边通知子类下载的数据及数据长度

参数
data{const void*} 下载的数据地址
len{size_t} 下载的数据长度
返回
{bool} 若子类返回 false 则停止继续下载

◆ request()

http_request* acl::http_download::request ( ) const

调用此函数可以获得 http_request 对象,便于设置或查询请求头 或返回数据中的参数

返回
{http_request*} 返回 NULL 表示输入的 URL 非法

◆ request_header()

http_header* acl::http_download::request_header ( ) const

在调用 run 之前可以通过本函数获得请求头对象,便于用户设置 自己的请求头字段(但 set_method/set_range 是内部自动设置的)

返回
{http_header*} 返回 NULL 表示输入的 URL 非法

◆ reset()

bool acl::http_download::reset ( const char *  url = NULL,
const char *  addr = NULL 
)

重置内部请求状态

参数
url{const char*} 非空时则用此 URL 替代构造函数中输入的 URL, 否则依然使用构造函数中使用的 url
addr{const char*} 非空时,设置服务器地址(格式为: ip[|domain]:port,否则服务器地址从 url 中提取
返回
{bool} 返回 false 表示 url 非法

该类的文档由以下文件生成: