xrtHttpClientConfigInit

初始化安全公网限额、两类 30 秒超时、Happy Eyeballs 和可选系统信任;允许未对齐存储。

void xrtHttpClientConfigInit(xhttpclientconfig* pConfig);
参数说明
xhttpclientconfig* pConfig配置结构
返回:初始化安全公网限额、两类 30 秒超时、Happy Eyeballs 和可选系统信任;允许未对齐存储。

示例已编译验证

httpclientconfiginit obj;
xrtHttpClientConfigInit(&obj);

xrtHttpCallOptionsInit

初始化 origin-form、无回调、无取消并继承 Client 的两类超时;允许未对齐存储。

void xrtHttpCallOptionsInit(xhttpcalloptions* pOptions);
参数说明
xhttpcalloptions* pOptions选项
返回:初始化 origin-form、无回调、无取消并继承 Client 的两类超时;允许未对齐存储。

示例已编译验证

httpcalloptionsinit obj;
xrtHttpCallOptionsInit(&obj, pOptions);

xrtHttpProxyOptionsInit

初始化为继承 Client 默认代理;允许未对齐完整存储并拒绝地址回绕。

void xrtHttpProxyOptionsInit( xhttpproxyoptions* pOptions );
参数说明
xhttpproxyoptions* pOptions选项
返回:初始化为继承 Client 默认代理;允许未对齐完整存储并拒绝地址回绕。

示例已编译验证

httpproxyoptionsinit obj;
xrtHttpProxyOptionsInit(&obj, pOptions);

xrtHttpRedirectConfigInit

初始化十跳上限和安全重定向策略;允许未对齐完整存储并拒绝地址回绕。

void xrtHttpRedirectConfigInit( xhttpredirectconfig* pConfig );
参数说明
xhttpredirectconfig* pConfig配置结构
返回:初始化十跳上限和安全重定向策略;允许未对齐完整存储并拒绝地址回绕。

示例已编译验证

httpredirectconfiginit obj;
xrtHttpRedirectConfigInit(&obj);

xrtHttpRetryConfigInit

初始化为零次自动重试及完整安全策略;允许未对齐完整存储并拒绝地址回绕。

void xrtHttpRetryConfigInit( xhttpretryconfig* pConfig );
参数说明
xhttpretryconfig* pConfig配置结构
返回:初始化为零次自动重试及完整安全策略;允许未对齐完整存储并拒绝地址回绕。

示例已编译验证

httpretryconfiginit obj;
xrtHttpRetryConfigInit(&obj);

xrtHttpRetryOptionsInit

初始化为继承 Client 且不允许非幂等重放;允许未对齐完整存储并拒绝地址回绕。

void xrtHttpRetryOptionsInit( xhttpretryoptions* pOptions );
参数说明
xhttpretryoptions* pOptions选项
返回:初始化为继承 Client 且不允许非幂等重放;允许未对齐完整存储并拒绝地址回绕。

示例已编译验证

httpretryoptionsinit obj;
xrtHttpRetryOptionsInit(&obj, pOptions);

xrtHttpCookieOptionsInit

初始化默认 Cookie 策略;接受未对齐的完整存储并拒绝回绕地址。

void xrtHttpCookieOptionsInit( xhttpcookieoptions* pOptions );
参数说明
xhttpcookieoptions* pOptions选项
返回:初始化默认 Cookie 策略;接受未对齐的完整存储并拒绝回绕地址。

示例已编译验证

httpcookieoptionsinit obj;
xrtHttpCookieOptionsInit(&obj, pOptions);

xrtHttpDecompressConfigInit

初始化自动解码、64 MiB 正文上限和四层编码上限;允许未对齐存储。

void xrtHttpDecompressConfigInit( xhttpdecompressconfig* pConfig );
参数说明
xhttpdecompressconfig* pConfig配置结构
返回:初始化自动解码、64 MiB 正文上限和四层编码上限;允许未对齐存储。

示例已编译验证

httpdecompressconfiginit obj;
xrtHttpDecompressConfigInit(&obj);

xrtHttpClientCacheConfigInit

初始化默认缓存策略;接受未对齐的完整存储并拒绝回绕地址。

void xrtHttpClientCacheConfigInit( xhttpclientcacheconfig* pConfig );
参数说明
xhttpclientcacheconfig* pConfig配置结构
返回:初始化默认缓存策略;接受未对齐的完整存储并拒绝回绕地址。

示例已编译验证

httpclientcacheconfiginit obj;
xrtHttpClientCacheConfigInit(&obj);

xrtHttpClientCacheOptionsInit

初始化继承且未分区的缓存选项;存储可以未对齐但必须完整。

void xrtHttpClientCacheOptionsInit( xhttpclientcacheoptions* pOptions );
参数说明
xhttpclientcacheoptions* pOptions选项
返回:初始化继承且未分区的缓存选项;存储可以未对齐但必须完整。

示例已编译验证

httpclientcacheoptionsinit obj;
xrtHttpClientCacheOptionsInit(&obj, pOptions);

xrtHttpClientPoolConfigInit

XRT_API void xrtHttpClientPoolConfigInit( xhttpclientpoolconfig* pConfig );

;
返回:XRT_API void xrtHttpClientPoolConfigInit( xhttpclientpoolconfig* pConfig );

示例已编译验证

httpclientpoolconfiginit obj;
xrtHttpClientPoolConfigInit(&obj);

xrtHttpResumeConfigInit

初始化默认恢复缓存;接受未对齐的完整存储并拒绝回绕地址。

void xrtHttpResumeConfigInit( xhttpresumeconfig* pConfig );
参数说明
xhttpresumeconfig* pConfig配置结构
返回:初始化默认恢复缓存;接受未对齐的完整存储并拒绝回绕地址。

示例已编译验证

httpresumeconfiginit obj;
xrtHttpResumeConfigInit(&obj);

xrtHttpClientCreate

XRT_API xhttpclient* xrtHttpClientCreate( xnetengine* pEngine, const xhttpclientconfig* pConfig );

;
返回:XRT_API xhttpclient* xrtHttpClientCreate( xnetengine* pEngine, const xhttpclientconfig* pConfig );

示例已编译验证

/* XRT_API xhttpclient* xrtHttpClientCreate( xnetengine* pEngine, const xhttpclientconfig* pConfig ); */
xhandle* h = xrtHttpClientCreate();

xrtHttpClientCreateTls

XRT_API xhttpclient* xrtHttpClientCreateTls( xnetengine* pEngine, const xtlscontext* pContext, const xtlsverifier* pVerifier );

;
返回:XRT_API xhttpclient* xrtHttpClientCreateTls( xnetengine* pEngine, const xtlscontext* pContext, const xtlsverifier* pVerifier );

示例已编译验证

/* XRT_API xhttpclient* xrtHttpClientCreateTls( xnetengine* pEngine, const xtlscontext* pContext, const xtlsverifier* pVerifier ); */
xhandle* h = xrtHttpClientCreateTls();

xrtHttpClientCreateWithResolver

XRT_API xhttpclient* xrtHttpClientCreateWithResolver( xnetengine* pEngine, xnetresolver* pResolver, const xhttpclientconfig* pConfig );

;
返回:XRT_API xhttpclient* xrtHttpClientCreateWithResolver( xnetengine* pEngine, xnetresolver* pResolver, const xhttpclientconfig* pConfig );

示例已编译验证

/* XRT_API xhttpclient* xrtHttpClientCreateWithResolver( xnetengine* pEngine, xnetresolver* pResolver, const xhttpclientconfig* pConfig ); */
xhandle* h = xrtHttpClientCreateWithResolver();

xrtHttpClientRef

增加 Client 公开所有者引用并返回原指针。

xhttpclient* xrtHttpClientRef(xhttpclient* pClient);
参数说明
xhttpclient* pClient客户端对象
返回:增加 Client 公开所有者引用并返回原指针。

示例已编译验证

/* 增加 Client 公开所有者引用并返回原指针。 */
result = xrtHttpClientRef(pClient);

xrtHttpClientDestroy

XRT_API void xrtHttpClientDestroy(xhttpclient* pClient);

;
返回:XRT_API void xrtHttpClientDestroy(xhttpclient* pClient);

示例已编译验证

xrtHttpClientDestroy(obj);

xrtHttpClientDrain

停止接收新 Call,关闭空闲连接并让全部已提交 Call 自然完成。

bool xrtHttpClientDrain(xhttpclient* pClient);
参数说明
xhttpclient* pClient客户端对象
返回:停止接收新 Call,关闭空闲连接并让全部已提交 Call 自然完成。

示例已编译验证

/* 停止接收新 Call,关闭空闲连接并让全部已提交 Call 自然完成。 */
result = xrtHttpClientDrain(pClient);

xrtHttpClientAbort

停止接收新 Call,关闭空闲连接并协作取消全部已提交 Call。

bool xrtHttpClientAbort(xhttpclient* pClient);
参数说明
xhttpclient* pClient客户端对象
返回:停止接收新 Call,关闭空闲连接并协作取消全部已提交 Call。

示例已编译验证

/* 停止接收新 Call,关闭空闲连接并协作取消全部已提交 Call。 */
result = xrtHttpClientAbort(pClient);

xrtHttpClientState

返回 Client 当前生命周期状态。

xhttpclientstate xrtHttpClientState( const xhttpclient* pClient );
参数说明
const xhttpclient* pClient客户端对象
返回:返回 Client 当前生命周期状态。

示例已编译验证

/* 返回 Client 当前生命周期状态。 */
result = xrtHttpClientState(pClient);

xrtHttpClientEngine

返回 Client 生命周期绑定的借用网络 Engine;空 Client 返回空指针。

xnetengine* xrtHttpClientEngine( const xhttpclient* pClient );
参数说明
const xhttpclient* pClient客户端对象
返回:返回 Client 生命周期绑定的借用网络 Engine;空 Client 返回空指针。

示例已编译验证

/* 返回 Client 生命周期绑定的借用网络 Engine;空 Client 返回空指针。 */
result = xrtHttpClientEngine(pClient);

xrtHttpClientDo

XRT_API xhttpcall* xrtHttpClientDo( xhttpclient* pClient, const xhttprequest* pRequest, const xhttpcalloptions* pOptions, xhttpcallproc pDone, ptr pData );

;
返回:XRT_API xhttpcall* xrtHttpClientDo( xhttpclient* pClient, const xhttprequest* pRequest, const xhttpcalloptions* pOptions, xhttpcallproc pDone, ptr pData );

示例已编译验证

/* XRT_API xhttpcall* xrtHttpClientDo( xhttpclient* pClient, const xhttprequest* pRequest, const xhttpcalloptions* pOptions, xhttpcallproc pDone, ptr pData ); */
result = xrtHttpClientDo();

xrtHttpCallRef

增加 Call 引用并返回原指针。

xhttpcall* xrtHttpCallRef(xhttpcall* pCall);
参数说明
xhttpcall* pCall调用对象
返回:增加 Call 引用并返回原指针。

示例已编译验证

/* 增加 Call 引用并返回原指针。 */
result = xrtHttpCallRef(pCall);

xrtHttpCallDestroy

释放 Call 引用;空指针视为空操作。

void xrtHttpCallDestroy(xhttpcall* pCall);
参数说明
xhttpcall* pCall调用对象
返回:释放 Call 引用;空指针视为空操作。

示例已编译验证

xrtHttpCallDestroy(pCall);

xrtHttpCallCancel

XRT_API bool xrtHttpCallCancel(xhttpcall* pCall);

;
返回:XRT_API bool xrtHttpCallCancel(xhttpcall* pCall);

示例已编译验证

/* XRT_API bool xrtHttpCallCancel(xhttpcall* pCall); */
result = xrtHttpCallCancel();

xrtHttpCallPause

在当前网络 Worker 上暂停正在交付的响应正文和传输读取。

bool xrtHttpCallPause(xhttpcall* pCall);
参数说明
xhttpcall* pCall调用对象
返回:在当前网络 Worker 上暂停正在交付的响应正文和传输读取。

示例已编译验证

/* 在当前网络 Worker 上暂停正在交付的响应正文和传输读取。 */
result = xrtHttpCallPause(pCall);

xrtHttpCallResume

从任意线程恢复当前 HTTP/1 响应输入。

bool xrtHttpCallResume(xhttpcall* pCall);
参数说明
xhttpcall* pCall调用对象
返回:从任意线程恢复当前 HTTP/1 响应输入。

示例已编译验证

/* 从任意线程恢复当前 HTTP/1 响应输入。 */
result = xrtHttpCallResume(pCall);

xrtHttpCallPaused

返回当前 HTTP/1 响应输入暂停门的并发快照。

bool xrtHttpCallPaused(const xhttpcall* pCall);
参数说明
const xhttpcall* pCall调用对象
返回:返回当前 HTTP/1 响应输入暂停门的并发快照。

示例已编译验证

/* 返回当前 HTTP/1 响应输入暂停门的并发快照。 */
result = xrtHttpCallPaused(pCall);

xrtHttpCallWorker

返回 Call 从提交到终态始终所属的借用网络 Worker。

xnetworker* xrtHttpCallWorker(const xhttpcall* pCall);
参数说明
const xhttpcall* pCall调用对象
返回:返回 Call 从提交到终态始终所属的借用网络 Worker。

示例已编译验证

/* 返回 Call 从提交到终态始终所属的借用网络 Worker。 */
result = xrtHttpCallWorker(pCall);

xrtHttpCallRequestClone

从任意线程克隆 Call 当前有效请求;调用方负责销毁返回的拥有型快照。

xhttprequest* xrtHttpCallRequestClone( const xhttpcall* pCall );
参数说明
const xhttpcall* pCall调用对象
返回:从任意线程克隆 Call 当前有效请求;调用方负责销毁返回的拥有型快照。

示例已编译验证

/* 从任意线程克隆 Call 当前有效请求;调用方负责销毁返回的拥有型快照。 */
result = xrtHttpCallRequestClone(pCall);

xrtHttpCallState

返回 Call 当前阶段或不可变终态的并发快照。

xhttpcallstate xrtHttpCallState(const xhttpcall* pCall);
参数说明
const xhttpcall* pCall调用对象
返回:返回 Call 当前阶段或不可变终态的并发快照。

示例已编译验证

/* 返回 Call 当前阶段或不可变终态的并发快照。 */
result = xrtHttpCallState(pCall);

xrtHttpCallError

失败、超时或取消后返回借用的稳定错误原因链。

const xerror* xrtHttpCallError(const xhttpcall* pCall);
参数说明
const xhttpcall* pCall调用对象
返回:失败、超时或取消后返回借用的稳定错误原因链。

示例已编译验证

/* 失败、超时或取消后返回借用的稳定错误原因链。 */
result = xrtHttpCallError(pCall);

xrtHttpCallInfo

复制 Call 快照;输出存储可以未对齐但必须完整且地址不回绕。

bool xrtHttpCallInfo( const xhttpcall* pCall, xhttpcallinfo* pInfo );
参数说明
const xhttpcall* pCall调用对象
xhttpcallinfo* pInfo上下文信息
返回:复制 Call 快照;输出存储可以未对齐但必须完整且地址不回绕。

示例已编译验证

/* 复制 Call 快照;输出存储可以未对齐但必须完整且地址不回绕。 */
result = xrtHttpCallInfo(pCall, pInfo);

xrtHttpClientProxy

XRT_API const xnetproxy* xrtHttpClientProxy( const xhttpclient* pClient );

;
返回:XRT_API const xnetproxy* xrtHttpClientProxy( const xhttpclient* pClient );

示例已编译验证

/* XRT_API const xnetproxy* xrtHttpClientProxy( const xhttpclient* pClient ); */
result = xrtHttpClientProxy();

xrtHttpClientCookieJar

XRT_API xcookiejar* xrtHttpClientCookieJar( const xhttpclient* pClient );

;
返回:XRT_API xcookiejar* xrtHttpClientCookieJar( const xhttpclient* pClient );

示例已编译验证

/* XRT_API xcookiejar* xrtHttpClientCookieJar( const xhttpclient* pClient ); */
result = xrtHttpClientCookieJar();

xrtHttpClientCache

XRT_API xhttpcache* xrtHttpClientCache( const xhttpclient* pClient );

;
返回:XRT_API xhttpcache* xrtHttpClientCache( const xhttpclient* pClient );

示例已编译验证

/* XRT_API xhttpcache* xrtHttpClientCache( const xhttpclient* pClient ); */
result = xrtHttpClientCache();

xrtHttpClientCloseIdle

关闭当前全部空闲连接并返回从池中摘除的数量,不影响活动 Call。

size_t xrtHttpClientCloseIdle(xhttpclient* pClient);
参数说明
xhttpclient* pClient客户端对象
返回:关闭当前全部空闲连接并返回从池中摘除的数量,不影响活动 Call。

示例已编译验证

/* 关闭当前全部空闲连接并返回从池中摘除的数量,不影响活动 Call。 */
result = xrtHttpClientCloseIdle(pClient);

xrtHttpClientStats

读取并发快照;输出存储可以未对齐但必须完整且地址不回绕。

bool xrtHttpClientStats( const xhttpclient* pClient, xhttpclientstats* pStats );
参数说明
const xhttpclient* pClient客户端对象
xhttpclientstats* pStats出:统计快照
返回:读取并发快照;输出存储可以未对齐但必须完整且地址不回绕。

示例已编译验证

/* 读取并发快照;输出存储可以未对齐但必须完整且地址不回绕。 */
result = xrtHttpClientStats(pClient, pStats);

xrtHttpClientResumeClear

清空尚未被连接取用的 TLS 恢复票据,并返回释放数量。

size_t xrtHttpClientResumeClear(xhttpclient* pClient);
参数说明
xhttpclient* pClient客户端对象
返回:清空尚未被连接取用的 TLS 恢复票据,并返回释放数量。

示例已编译验证

/* 清空尚未被连接取用的 TLS 恢复票据,并返回释放数量。 */
result = xrtHttpClientResumeClear(pClient);

xrtHttpClientResumeStats

读取恢复缓存一致快照;输出存储可以未对齐但必须完整。

bool xrtHttpClientResumeStats( const xhttpclient* pClient, xhttpresumestats* pStats );
参数说明
const xhttpclient* pClient客户端对象
xhttpresumestats* pStats出:统计快照
返回:读取恢复缓存一致快照;输出存储可以未对齐但必须完整。

示例已编译验证

/* 读取恢复缓存一致快照;输出存储可以未对齐但必须完整。 */
result = xrtHttpClientResumeStats(pClient, pStats);