ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
ngl::tools::curl Class Reference

HTTP客户端管理类(单例)。 More...

#include <tools_curl.h>

Static Public Member Functions

static void set_mode (std::shared_ptr< http_parm > &ahttp, ENUM_MODE aval)
 设置HTTP模式(HTTP/HTTPS)
static void set_type (std::shared_ptr< http_parm > &ahttp, ENUM_TYPE aval)
 设置请求类型(GET/POST)
static void set_tls_verification (std::shared_ptr< http_parm > &ahttp, bool averify_peer, long averify_host=2L)
 设置TLS证书验证选项
static void set_url (std::shared_ptr< http_parm > &ahttp, const std::string &aurl)
 设置请求URL(字符串版本)
static void set_url (std::shared_ptr< http_parm > &ahttp, const char *aurl)
 设置请求URL(C字符串版本)
static void set_param (std::shared_ptr< http_parm > &ahttp, const std::string &aparam)
 设置请求参数
static void set_headers (std::shared_ptr< http_parm > &ahttp, const std::vector< std::string > &aheaders)
 设置请求头
static void set_callback (std::shared_ptr< http_parm > &ahttp, const std::function< void(int, http_parm &)> &aback)
 设置响应回调函数
template<typename T>
static void param (std::string &aparam, const char *akey, const T &aval)
template<typename ... TARGS, std::size_t... INDEX>
static void param (std::string &aparam, std::index_sequence< INDEX... >, const std::array< const char *, sizeof...(TARGS)> &akeys, const TARGS &... aargs)
template<typename ... TARGS>
static void param (std::string &aparam, const std::array< const char *, sizeof...(TARGS)> &akeys, const TARGS &... aargs)
static void send (std::shared_ptr< http_parm > &adata)
 提交HTTP请求到工作队列
static std::shared_ptr< http_parmhttp ()
 创建HTTP请求参数对象
static std::shared_ptr< mail_parammail ()
 创建邮件参数对象
static void sendemail (std::shared_ptr< mail_param > &aparm)
 同步发送邮件

Detailed Description

HTTP客户端管理类(单例)。

提供异步HTTP请求和邮件发送功能。通过后台工作队列执行阻塞的libcurl操作, 避免阻塞主线程。使用单例模式管理全局HTTP客户端实例。

Note
所有方法均为静态方法,通过curl::instance()获取内部单例。

Member Function Documentation

◆ http()

std::shared_ptr< http_parm > ngl::tools::curl::http ( )
static

创建HTTP请求参数对象

Returns
HTTP请求参数的共享指针

◆ mail()

std::shared_ptr< mail_param > ngl::tools::curl::mail ( )
static

创建邮件参数对象

Returns
邮件参数的共享指针

◆ send()

void ngl::tools::curl::send ( std::shared_ptr< http_parm > & adata)
static

提交HTTP请求到工作队列

Parameters
adataHTTP请求参数的共享指针
Note
请求将在工作线程中异步处理

◆ sendemail()

void ngl::tools::curl::sendemail ( std::shared_ptr< mail_param > & aparm)
static

同步发送邮件

提交邮件到队列并等待发送完成

Parameters
aparm邮件参数的共享指针

◆ set_callback()

void ngl::tools::curl::set_callback ( std::shared_ptr< http_parm > & ahttp,
const std::function< void(int, http_parm &)> & aback )
static

设置响应回调函数

Parameters
ahttpHTTP请求参数
aback回调函数,参数为错误码和请求参数

◆ set_headers()

void ngl::tools::curl::set_headers ( std::shared_ptr< http_parm > & ahttp,
const std::vector< std::string > & aheaders )
static

设置请求头

Parameters
ahttpHTTP请求参数
aheaders请求头列表

◆ set_mode()

void ngl::tools::curl::set_mode ( std::shared_ptr< http_parm > & ahttp,
ENUM_MODE aval )
static

设置HTTP模式(HTTP/HTTPS)

Parameters
ahttpHTTP请求参数
aval模式枚举值

◆ set_param()

void ngl::tools::curl::set_param ( std::shared_ptr< http_parm > & ahttp,
const std::string & aparam )
static

设置请求参数

Parameters
ahttpHTTP请求参数
aparam查询字符串或POST体

◆ set_tls_verification()

void ngl::tools::curl::set_tls_verification ( std::shared_ptr< http_parm > & ahttp,
bool averify_peer,
long averify_host = 2L )
static

设置TLS证书验证选项

Parameters
ahttpHTTP请求参数
averify_peer是否验证对端证书
averify_host主机名验证级别

◆ set_type()

void ngl::tools::curl::set_type ( std::shared_ptr< http_parm > & ahttp,
ENUM_TYPE aval )
static

设置请求类型(GET/POST)

Parameters
ahttpHTTP请求参数
aval类型枚举值

◆ set_url() [1/2]

void ngl::tools::curl::set_url ( std::shared_ptr< http_parm > & ahttp,
const char * aurl )
static

设置请求URL(C字符串版本)

Parameters
ahttpHTTP请求参数
aurl目标URL(可为nullptr)

◆ set_url() [2/2]

void ngl::tools::curl::set_url ( std::shared_ptr< http_parm > & ahttp,
const std::string & aurl )
static

设置请求URL(字符串版本)

Parameters
ahttpHTTP请求参数
aurl目标URL

The documentation for this class was generated from the following files: