xrtHttpStructuredKeyValid
验证 Structured Fields key 的小写 ASCII 语法。
| 参数 | 说明 |
|---|---|
| xstrview Key | 键 |
示例已编译验证
/* 验证 Structured Fields key 的小写 ASCII 语法。 */ result = xrtHttpStructuredKeyValid(Key);
xrtHttpStructuredTokenValid
验证 Structured Fields token 语法。
| 参数 | 说明 |
|---|---|
| xstrview Token | 令牌 |
示例已编译验证
/* 验证 Structured Fields token 语法。 */ result = xrtHttpStructuredTokenValid(Token);
xrtHttpStructuredBareNext
从当前位置解析一个裸值,不跳过空白且不要求消耗完整输入。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| size_t* pOffset | 出:偏移 |
| xhttpstructuredbare* pBare | Bare 参数 |
示例已编译验证
/* 从当前位置解析一个裸值,不跳过空白且不要求消耗完整输入。 */ result = xrtHttpStructuredBareNext(Value, pOffset, pBare);
xrtHttpStructuredItemParse
严格解析完整 Item;顶层两侧只允许 SP。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| xhttpstructureditem* pItem | 元素 |
示例已编译验证
/* 严格解析完整 Item;顶层两侧只允许 SP。 */ result = xrtHttpStructuredItemParse(Value, pItem);
xrtHttpStructuredParameterNext
迭代 Item 或 Inner List 的原始参数区。
| 参数 | 说明 |
|---|---|
| xstrview Parameters | 参数列表 |
| size_t* pOffset | 出:偏移 |
| xhttpstructuredparameter* pParameter | Parameter 参数 |
示例已编译验证
/* 迭代 Item 或 Inner List 的原始参数区。 */ result = xrtHttpStructuredParameterNext(Parameters, pOffset, pParameter);
xrtHttpStructuredParameterCount
返回去重后的参数数量;格式错误返回 XRT_NPOS。
| 参数 | 说明 |
|---|---|
| xstrview Parameters | 参数列表 |
示例已编译验证
/* 返回去重后的参数数量;格式错误返回 XRT_NPOS。 */ result = xrtHttpStructuredParameterCount(Parameters);
xrtHttpStructuredParameterAt
按首次出现顺序读取参数,重复 key 的值取最后一次。
| 参数 | 说明 |
|---|---|
| xstrview Parameters | 参数列表 |
| size_t iIndex | 下标 |
| xhttpstructuredparameter* pParameter | Parameter 参数 |
示例已编译验证
/* 按首次出现顺序读取参数,重复 key 的值取最后一次。 */ result = xrtHttpStructuredParameterAt(Parameters, iIndex, pParameter);
xrtHttpStructuredParameterFind
按 key 读取最后一次参数值。
| 参数 | 说明 |
|---|---|
| xstrview Parameters | 参数列表 |
| xstrview Key | 键 |
| xhttpstructuredparameter* pParameter | Parameter 参数 |
示例已编译验证
/* 按 key 读取最后一次参数值。 */ result = xrtHttpStructuredParameterFind(Parameters, Key, pParameter);
xrtHttpStructuredInnerNext
迭代完整 Inner List;游标从零开始,首次调用先验证全文,期间输入不可变。
| 参数 | 说明 |
|---|---|
| xstrview Inner | Inner 参数 |
| size_t* pOffset | 出:偏移 |
| xhttpstructureditem* pItem | 元素 |
示例已编译验证
/* 迭代完整 Inner List;游标从零开始,首次调用先验证全文,期间输入不可变。 */ result = xrtHttpStructuredInnerNext(Inner, pOffset, pItem);
xrtHttpStructuredInnerValid
严格验证完整 Inner List 内容。
| 参数 | 说明 |
|---|---|
| xstrview Inner | Inner 参数 |
示例已编译验证
/* 严格验证完整 Inner List 内容。 */ result = xrtHttpStructuredInnerValid(Inner);
xrtHttpStructuredListNext
迭代完整 List;游标从零开始,首次调用先验证全文,期间输入不可变。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| size_t* pOffset | 出:偏移 |
| xhttpstructuredmember* pMember | Member 参数 |
示例已编译验证
/* 迭代完整 List;游标从零开始,首次调用先验证全文,期间输入不可变。 */ result = xrtHttpStructuredListNext(Value, pOffset, pMember);
xrtHttpStructuredListValid
严格验证完整 Structured List。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
示例已编译验证
/* 严格验证完整 Structured List。 */ result = xrtHttpStructuredListValid(Value);
xrtHttpStructuredDictionaryNext
迭代完整 Dictionary;游标从零开始,首次调用先验证全文,期间输入不可变。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| size_t* pOffset | 出:偏移 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 迭代完整 Dictionary;游标从零开始,首次调用先验证全文,期间输入不可变。 */ result = xrtHttpStructuredDictionaryNext(Value, pOffset, pMember);
xrtHttpStructuredDictionaryValid
严格验证完整 Structured Dictionary。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
示例已编译验证
/* 严格验证完整 Structured Dictionary。 */ result = xrtHttpStructuredDictionaryValid(Value);
xrtHttpStructuredMapCursorInit
初始化单值或重复字段 Dictionary 有序 Map 游标。
| 参数 | 说明 |
|---|---|
| xhttpstructuredmapcursor* pCursor | 游标 |
示例已编译验证
httpstructuredmapcursorinit obj; xrtHttpStructuredMapCursorInit(&obj, pCursor);
xrtHttpStructuredDictionaryMapNext
迭代有序 Map;key 按首次出现顺序,值取最后一次出现。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| xhttpstructuredmapcursor* pCursor | 游标 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 迭代有序 Map;key 按首次出现顺序,值取最后一次出现。 */ result = xrtHttpStructuredDictionaryMapNext(Value, pCursor, pMember);
xrtHttpStructuredDictionaryCount
返回去重后的 Dictionary 成员数量;格式错误返回 XRT_NPOS。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
示例已编译验证
/* 返回去重后的 Dictionary 成员数量;格式错误返回 XRT_NPOS。 */ result = xrtHttpStructuredDictionaryCount(Value);
xrtHttpStructuredDictionaryAt
按首次出现顺序读取成员,重复 key 的值取最后一次。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| size_t iIndex | 下标 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 按首次出现顺序读取成员,重复 key 的值取最后一次。 */ result = xrtHttpStructuredDictionaryAt(Value, iIndex, pMember);
xrtHttpStructuredDictionaryFind
按 key 读取 Dictionary 中最后一次成员值。
| 参数 | 说明 |
|---|---|
| xstrview Value | 值 |
| xstrview Key | 键 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 按 key 读取 Dictionary 中最后一次成员值。 */ result = xrtHttpStructuredDictionaryFind(Value, Key, pMember);
xrtHttpStructuredFieldCursorInit
初始化来源绑定的重复字段行游标。
| 参数 | 说明 |
|---|---|
| xhttpstructuredfieldcursor* pCursor | 游标 |
示例已编译验证
httpstructuredfieldcursorinit obj; xrtHttpStructuredFieldCursorInit(&obj, pCursor);
xrtHttpStructuredListFieldNext
按线路顺序跨重复同名字段行迭代;期间字段数组、字段名和内容不可变。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
| xhttpstructuredfieldcursor* pCursor | 游标 |
| xhttpstructuredmember* pMember | Member 参数 |
示例已编译验证
/* 按线路顺序跨重复同名字段行迭代;期间字段数组、字段名和内容不可变。 */ result = xrtHttpStructuredListFieldNext(pFields, iCount, Name, pCursor, pMember);
xrtHttpStructuredDictionaryFieldNext
按线路顺序跨重复同名字段行迭代;游标不可切换来源或顶层类型。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
| xhttpstructuredfieldcursor* pCursor | 游标 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 按线路顺序跨重复同名字段行迭代;游标不可切换来源或顶层类型。 */ result = xrtHttpStructuredDictionaryFieldNext(pFields, iCount, Name, pCursor, pMember);
xrtHttpStructuredDictionaryMapFieldNext
跨重复字段行迭代有序 Map,重复 key 采用最后一次值。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
| xhttpstructuredmapcursor* pCursor | 游标 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 跨重复字段行迭代有序 Map,重复 key 采用最后一次值。 */ result = xrtHttpStructuredDictionaryMapFieldNext(pFields, iCount, Name, pCursor, pMember);
xrtHttpStructuredDictionaryFieldCount
返回重复字段行逻辑组合并去重后的 Dictionary 成员数。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
示例已编译验证
/* 返回重复字段行逻辑组合并去重后的 Dictionary 成员数。 */ result = xrtHttpStructuredDictionaryFieldCount(pFields, iCount, Name);
xrtHttpStructuredDictionaryFieldAt
按首次出现顺序读取跨字段 Dictionary,重复 key 取最后值。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
| size_t iIndex | 下标 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 按首次出现顺序读取跨字段 Dictionary,重复 key 取最后值。 */ result = xrtHttpStructuredDictionaryFieldAt(pFields, iCount, Name, iIndex, pMember);
xrtHttpStructuredDictionaryFieldFind
按 key 读取跨字段 Dictionary 中最后一次成员值。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
| xstrview Key | 键 |
| xhttpstructureddictionarymember* pMember | Member 参数 |
示例已编译验证
/* 按 key 读取跨字段 Dictionary 中最后一次成员值。 */ result = xrtHttpStructuredDictionaryFieldFind(pFields, iCount, Name, Key, pMember);
xrtHttpStructuredItemField
解析唯一同名字段行中的 Structured Item;缺失返回 END。
| 参数 | 说明 |
|---|---|
| const xhttpfield* pFields | 字段数组 |
| size_t iCount | 数量 |
| xstrview Name | 名称(xstrview) |
| xhttpstructureditem* pItem | 元素 |
示例已编译验证
/* 解析唯一同名字段行中的 Structured Item;缺失返回 END。 */ result = xrtHttpStructuredItemField(pFields, iCount, Name, pItem);
xrtHttpStructuredStringDecode
解码 String;空输出查询长度,允许与 Encoded 同址,长度输出可未对齐。
| 参数 | 说明 |
|---|---|
| const xhttpstructuredbare* pBare | Bare 参数 |
| char* sOutput | 输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 解码 String;空输出查询长度,允许与 Encoded 同址,长度输出可未对齐。 */ result = xrtHttpStructuredStringDecode(pBare, sOutput, iCapacity, pSize);
xrtHttpStructuredBytesDecode
解码 Byte Sequence;空输出查询长度,允许与 Encoded 同址,长度可未对齐。
| 参数 | 说明 |
|---|---|
| const xhttpstructuredbare* pBare | Bare 参数 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 解码 Byte Sequence;空输出查询长度,允许与 Encoded 同址,长度可未对齐。 */ result = xrtHttpStructuredBytesDecode(pBare, pOutput, iCapacity, pSize);
xrtHttpStructuredDisplayDecode
解码并校验 Display UTF-8;允许与 Encoded 同址,长度输出可未对齐。
| 参数 | 说明 |
|---|---|
| const xhttpstructuredbare* pBare | Bare 参数 |
| char* sOutput | 输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 解码并校验 Display UTF-8;允许与 Encoded 同址,长度输出可未对齐。 */ result = xrtHttpStructuredDisplayDecode(pBare, sOutput, iCapacity, pSize);
xrtHttpStructuredBareWrite
规范序列化一个抽象裸值;输出不附加零字节。
| 参数 | 说明 |
|---|---|
| const xhttpstructuredvalue* pValue | 值 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 规范序列化一个抽象裸值;输出不附加零字节。 */ result = xrtHttpStructuredBareWrite(pValue, pOutput, iCapacity, pSize);
xrtHttpStructuredItemWrite
规范序列化一个 Item 及其参数;输出不附加零字节。
| 参数 | 说明 |
|---|---|
| const xhttpstructureditemvalue* pItem | 元素 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 规范序列化一个 Item 及其参数;输出不附加零字节。 */ result = xrtHttpStructuredItemWrite(pItem, pOutput, iCapacity, pSize);
xrtHttpStructuredListWrite
规范序列化完整 List;空数组产生长度为零的省略值。
| 参数 | 说明 |
|---|---|
| const xhttpstructuredmembervalue* pMembers | Members 参数 |
| size_t iCount | 数量 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 规范序列化完整 List;空数组产生长度为零的省略值。 */ result = xrtHttpStructuredListWrite(pMembers, iCount, pOutput, iCapacity, pSize);
xrtHttpStructuredDictionaryWrite
规范序列化完整 Dictionary;key 必须唯一。
| 参数 | 说明 |
|---|---|
| const xhttpstructureddictionaryentry* pEntries | Entres 参数 |
| size_t iCount | 数量 |
| void* pOutput | 出:输出缓冲 |
| size_t iCapacity | 容量 |
| size_t* pSize | 出:大小 |
示例已编译验证
/* 规范序列化完整 Dictionary;key 必须唯一。 */ result = xrtHttpStructuredDictionaryWrite(pEntries, iCount, pOutput, iCapacity, pSize);