fastdo  0.5.12
eiennet::CUrl类 参考

libcurl低层封装,主要提供了CURL句柄资源管理功能 更多...

#include <eiennet_curl.hpp>

类 eiennet::CUrl 继承关系图:

Public 类型

typedef size_t(* WriteFunction) (char *buf, size_t itemSize, size_t count, void *data)
 
typedef size_t(* ReadFunction) (char *buf, size_t itemSize, size_t count, void *data)
 
typedef size_t(* HeaderFunction) (char *buf, size_t itemSize, size_t count, void *data)
 
typedef int(* ProgressFunction) (void *data, double dltotal, double dlnow, double ultotal, double ulnow)
 

Public 成员函数

 CUrl (bool isInit=true)
 isInit为true将自动调用init(),否则不调用。 更多...
 
 CUrl (CUrl const &other)
 
virtual ~CUrl ()
 
CUrloperator= (CUrl const &other)
 释放清理自身curl,复制其他curl,并且拷贝选项设置,并设置自己的一些选项:譬如回调函数对象指针 更多...
 
void init ()
 初始化curl 更多...
 
void cleanup ()
 释放清理curl 更多...
 
bool perform ()
 执行操作 更多...
 
void reset ()
 复位各选项 更多...
 
void setHttpGet (bool b=true)
 设置成http GET请求方式。也可用于把curl恢复成使用GET的状态。 更多...
 
void setHttpPost (bool b=true)
 设置成http POST请求方式 更多...
 
void setUrl (winux::String const &url)
 设置URL,url包含scheme信息 更多...
 
void setTimeout (winux::ulong timeout)
 设置超时秒数 更多...
 
void setErrorBuffer (char *errBuf)
 设定错误信息缓冲区,缓冲区大小必须是CURL_ERROR_SIZE=256 更多...
 
void setNoProgress (bool b)
 是否关闭进度功能,默认关闭 更多...
 
void setUsername (winux::String const &username)
 设置用户名 更多...
 
void setPassword (winux::String const &password)
 设置用户密码 更多...
 
void setPostFields (char const *data)
 设置Post数据 更多...
 
void setPostFieldSize (long size)
 设置Post数据长度 更多...
 
void setPostMultipart (PostMultipart const &data)
 设置Post多部分数据 更多...
 
void setHttpHeader (SList const &headers)
 设置HTTP头 更多...
 
void setVerbose (bool b)
 是否显示详细信息,默认不显示 更多...
 
void setCookieJar (winux::String const &filename)
 设置Cookies写入文件 更多...
 
void setSslVerifyPeer (bool b)
 决定是否验证对等方证书的真实性 更多...
 
void setSslVerifyHost (bool b)
 决定是否验证服务器证书适用于所谓的服务器 更多...
 
void setWriteHandler (WriteFunction handler)
 设置'写'处理函数,默认已设为WriteCallback() 更多...
 
void setWriteHandlerData (void *data)
 设置'写'处理函数的自定义参数,默认设为this,使从静态成员函数传递到普通成员虚函数进行处理 更多...
 
void setReadHandler (ReadFunction handler)
 
void setReadHandlerData (void *data)
 
void setHeaderHandler (HeaderFunction handler)
 
void setHeaderHandlerData (void *data)
 
void setProgressHandler (ProgressFunction handler)
 
void setProgressHandlerData (void *data)
 
 operator CURL * () const
 
int errNo () const
 执行后得到的错误码(CURLcode) 更多...
 
char const * errNoStr () const
 执行后得到的错误码字符串 更多...
 
char const * error () const
 从错误缓冲区取得错误信息 更多...
 

Protected 成员函数

virtual size_t OnWrite (char *buf, size_t itemSize, size_t count)
 
virtual size_t OnRead (char *buf, size_t itemSize, size_t count)
 
virtual size_t OnHeader (char *buf, size_t itemSize, size_t count)
 
virtual int OnDownloadProgress (double dltotal, double dlnow)
 
virtual int OnUploadProgress (double ultotal, double ulnow)
 

静态 Protected 成员函数

static size_t WriteCallback (char *buf, size_t itemSize, size_t count, void *data)
 
static size_t ReadCallback (char *buf, size_t itemSize, size_t count, void *data)
 
static size_t HeaderCallback (char *buf, size_t itemSize, size_t count, void *data)
 
static int ProgressCallback (void *data, double dltotal, double dlnow, double ultotal, double ulnow)
 

详细描述

libcurl低层封装,主要提供了CURL句柄资源管理功能

在文件 eiennet_curl.hpp65 行定义.

成员类型定义说明

typedef size_t(* eiennet::CUrl::HeaderFunction) (char *buf, size_t itemSize, size_t count, void *data)

在文件 eiennet_curl.hpp185 行定义.

typedef int(* eiennet::CUrl::ProgressFunction) (void *data, double dltotal, double dlnow, double ultotal, double ulnow)

在文件 eiennet_curl.hpp189 行定义.

typedef size_t(* eiennet::CUrl::ReadFunction) (char *buf, size_t itemSize, size_t count, void *data)

在文件 eiennet_curl.hpp181 行定义.

typedef size_t(* eiennet::CUrl::WriteFunction) (char *buf, size_t itemSize, size_t count, void *data)

在文件 eiennet_curl.hpp175 行定义.

构造及析构函数说明

eiennet::CUrl::CUrl ( bool  isInit = true)

isInit为true将自动调用init(),否则不调用。

eiennet::CUrl::CUrl ( CUrl const &  other)
virtual eiennet::CUrl::~CUrl ( )
virtual

成员函数说明

void eiennet::CUrl::cleanup ( )

释放清理curl

int eiennet::CUrl::errNo ( ) const
inline

执行后得到的错误码(CURLcode)

在文件 eiennet_curl.hpp197 行定义.

char const* eiennet::CUrl::errNoStr ( ) const

执行后得到的错误码字符串

char const* eiennet::CUrl::error ( ) const

从错误缓冲区取得错误信息

static size_t eiennet::CUrl::HeaderCallback ( char *  buf,
size_t  itemSize,
size_t  count,
void *  data 
)
staticprotected
void eiennet::CUrl::init ( )

初始化curl

virtual int eiennet::CUrl::OnDownloadProgress ( double  dltotal,
double  dlnow 
)
protectedvirtual
virtual size_t eiennet::CUrl::OnHeader ( char *  buf,
size_t  itemSize,
size_t  count 
)
protectedvirtual
virtual size_t eiennet::CUrl::OnRead ( char *  buf,
size_t  itemSize,
size_t  count 
)
protectedvirtual
virtual int eiennet::CUrl::OnUploadProgress ( double  ultotal,
double  ulnow 
)
protectedvirtual
virtual size_t eiennet::CUrl::OnWrite ( char *  buf,
size_t  itemSize,
size_t  count 
)
protectedvirtual

eiennet::HttpCUrl 重载.

eiennet::CUrl::operator CURL * ( ) const
inline

在文件 eiennet_curl.hpp194 行定义.

CUrl& eiennet::CUrl::operator= ( CUrl const &  other)

释放清理自身curl,复制其他curl,并且拷贝选项设置,并设置自己的一些选项:譬如回调函数对象指针

bool eiennet::CUrl::perform ( )

执行操作

static int eiennet::CUrl::ProgressCallback ( void *  data,
double  dltotal,
double  dlnow,
double  ultotal,
double  ulnow 
)
staticprotected
static size_t eiennet::CUrl::ReadCallback ( char *  buf,
size_t  itemSize,
size_t  count,
void *  data 
)
staticprotected
void eiennet::CUrl::reset ( )

复位各选项

void eiennet::CUrl::setCookieJar ( winux::String const &  filename)

设置Cookies写入文件

void eiennet::CUrl::setErrorBuffer ( char *  errBuf)

设定错误信息缓冲区,缓冲区大小必须是CURL_ERROR_SIZE=256

void eiennet::CUrl::setHeaderHandler ( HeaderFunction  handler)
void eiennet::CUrl::setHeaderHandlerData ( void *  data)
void eiennet::CUrl::setHttpGet ( bool  b = true)

设置成http GET请求方式。也可用于把curl恢复成使用GET的状态。

如果b是1,这将强制HTTP请求回到使用GET的状态。若之前使用过POST、HEAD、PUT等状态,可以使用这个方法将强制HTTP请求回到使用GET的状态。

void eiennet::CUrl::setHttpHeader ( SList const &  headers)

设置HTTP头

void eiennet::CUrl::setHttpPost ( bool  b = true)

设置成http POST请求方式

如果b是1,这将告诉libcurl发起常规POST请求。 这还会使得libcurl使用 "Content-Type: application/x-www-form-urlencoded" 请求头。

void eiennet::CUrl::setNoProgress ( bool  b)

是否关闭进度功能,默认关闭

void eiennet::CUrl::setPassword ( winux::String const &  password)

设置用户密码

void eiennet::CUrl::setPostFields ( char const *  data)

设置Post数据

void eiennet::CUrl::setPostFieldSize ( long  size)

设置Post数据长度

void eiennet::CUrl::setPostMultipart ( PostMultipart const &  data)

设置Post多部分数据

void eiennet::CUrl::setProgressHandler ( ProgressFunction  handler)
void eiennet::CUrl::setProgressHandlerData ( void *  data)
void eiennet::CUrl::setReadHandler ( ReadFunction  handler)
void eiennet::CUrl::setReadHandlerData ( void *  data)
void eiennet::CUrl::setSslVerifyHost ( bool  b)

决定是否验证服务器证书适用于所谓的服务器

默认是true.

void eiennet::CUrl::setSslVerifyPeer ( bool  b)

决定是否验证对等方证书的真实性

默认是true.

void eiennet::CUrl::setTimeout ( winux::ulong  timeout)

设置超时秒数

void eiennet::CUrl::setUrl ( winux::String const &  url)

设置URL,url包含scheme信息

void eiennet::CUrl::setUsername ( winux::String const &  username)

设置用户名

void eiennet::CUrl::setVerbose ( bool  b)

是否显示详细信息,默认不显示

void eiennet::CUrl::setWriteHandler ( WriteFunction  handler)

设置'写'处理函数,默认已设为WriteCallback()

void eiennet::CUrl::setWriteHandlerData ( void *  data)

设置'写'处理函数的自定义参数,默认设为this,使从静态成员函数传递到普通成员虚函数进行处理

static size_t eiennet::CUrl::WriteCallback ( char *  buf,
size_t  itemSize,
size_t  count,
void *  data 
)
staticprotected

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