xrtUrlParse
XRT_API bool xrtUrlParse(xstrview Text, xurl* pUrl);
示例已编译验证
/* XRT_API bool xrtUrlParse(xstrview Text, xurl* pUrl); */ result = xrtUrlParse();
xrtUrlAuthorityParse
XRT_API bool xrtUrlAuthorityParse(xstrview Authority, xurl* pUrl);
示例已编译验证
/* XRT_API bool xrtUrlAuthorityParse(xstrview Authority, xurl* pUrl); */ result = xrtUrlAuthorityParse();
xrtUrlDefaultPort
返回 HTTP、HTTPS、WS 或 WSS 的默认端口,其他 scheme 返回零。
| 参数 | 说明 |
|---|---|
| xstrview Scheme | 协议方案 |
示例已编译验证
/* 返回 HTTP、HTTPS、WS 或 WSS 的默认端口,其他 scheme 返回零。 */ result = xrtUrlDefaultPort(Scheme);
xrtUrlPort
取得可用网络端口;省略或空端口使用已知默认值,超出 uint16 范围失败。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
| uint16* pPort | 端口 |
示例已编译验证
/* 取得可用网络端口;省略或空端口使用已知默认值,超出 uint16 范围失败。 */ result = xrtUrlPort(pUrl, pPort);
xrtUrlSchemeIs
按 ASCII 大小写不敏感规则判断 scheme。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
| xstrview Scheme | 协议方案 |
示例已编译验证
/* 按 ASCII 大小写不敏感规则判断 scheme。 */ result = xrtUrlSchemeIs(pUrl, Scheme);
xrtUrlSecure
判断 URL 是否使用 HTTPS 或 WSS。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
示例已编译验证
/* 判断 URL 是否使用 HTTPS 或 WSS。 */ result = xrtUrlSecure(pUrl);
xrtUrlPortIsDefault
判断显式端口对已知 scheme 为空或等于默认端口。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
示例已编译验证
/* 判断显式端口对已知 scheme 为空或等于默认端口。 */ result = xrtUrlPortIsDefault(pUrl);
xrtUrlWrite
XRT_API bool xrtUrlWrite( const xurl* pUrl, void* pOutput, size_t iCapacity, size_t* pSize );
示例已编译验证
/* XRT_API bool xrtUrlWrite( const xurl* pUrl, void* pOutput, size_t iCapacity, size_t* pSize ); */ result = xrtUrlWrite();
xrtUrlBuild
XRT_API str xrtUrlBuild(const xurl* pUrl, size_t* pSize);
示例已编译验证
/* XRT_API str xrtUrlBuild(const xurl* pUrl, size_t* pSize); */ result = xrtUrlBuild();
xrtUrlAuthorityWrite
写出 authority,不含前导双斜杠或零结尾;空输出可查询长度。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出 authority,不含前导双斜杠或零结尾;空输出可查询长度。 */ result = xrtUrlAuthorityWrite(pUrl, pOutput, iCapacity, pSize);
xrtUrlHostWrite
写出 host 与显式端口,不含 userinfo 或零结尾;保留显式默认端口。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出 host 与显式端口,不含 userinfo 或零结尾;保留显式默认端口。 */ result = xrtUrlHostWrite(pUrl, pOutput, iCapacity, pSize);
xrtUrlTargetWrite
写出 HTTP origin-form target:空路径变为斜杠,query 保留,fragment 丢弃。
| 参数 | 说明 |
|---|---|
| const xurl* pUrl | URL 文本 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 写出 HTTP origin-form target:空路径变为斜杠,query 保留,fragment 丢弃。 */ result = xrtUrlTargetWrite(pUrl, pOutput, iCapacity, pSize);
xrtUrlPathNormalize
按 RFC 3986 零分配规范化 path;原地或前向重叠可用,失败不修改输出。
| 参数 | 说明 |
|---|---|
| xstrview Path | 路径 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 按 RFC 3986 零分配规范化 path;原地或前向重叠可用,失败不修改输出。 */ result = xrtUrlPathNormalize(Path, pOutput, iCapacity, pSize);
xrtUrlPathNormalizeBuild
分配零结尾的规范化 URL path;返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| xstrview Path | 路径 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 分配零结尾的规范化 URL path;返回值由 xrtFree 释放。 */ result = xrtUrlPathNormalizeBuild(Path, pSize);
xrtUrlResolve
零分配解析 RFC 3986 引用;Base 必须含 scheme,输出不得覆盖输入。
| 参数 | 说明 |
|---|---|
| const xurl* pBase | 基准 |
| xstrview Reference | Reference 参数 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 零分配解析 RFC 3986 引用;Base 必须含 scheme,输出不得覆盖输入。 */ result = xrtUrlResolve(pBase, Reference, pOutput, iCapacity, pSize);
xrtUrlResolveBuild
单次分配零结尾的解析结果;返回值由 xrtFree 释放。
| 参数 | 说明 |
|---|---|
| const xurl* pBase | 基准 |
| xstrview Reference | Reference 参数 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 单次分配零结尾的解析结果;返回值由 xrtFree 释放。 */ result = xrtUrlResolveBuild(pBase, Reference, pSize);
xrtUrlParamValid
无分配验证 HTTP 参数解码后的语义值是完整 RFC 3986 URI-reference。
| 参数 | 说明 |
|---|---|
| const xhttpparam* pParam | 参数 |
示例已编译验证
/* 无分配验证 HTTP 参数解码后的语义值是完整 RFC 3986 URI-reference。 */ result = xrtUrlParamValid(pParam);