首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RESTCONF/杨数据端点在URL编码中不能正常工作

RESTCONF/杨数据端点在URL编码中不能正常工作
EN

Stack Overflow用户
提问于 2022-11-21 08:14:40
回答 1查看 21关注 0票数 0

让我们以这个URL为例

代码语言:javascript
复制
https://<ip>/restconf/data/Cisco-IOS-XE-native:native/interface/GigabitEthernet=1

如果我使用内部库向类似的端点发送请求,我们一直在使用的服务器不理解它,因为=被编码为%3D,但是使用curl在CLI上发出相同的请求很好。

我不明白为什么这是个问题,不是应该在URL中编码吗?这与库将其作为查询处理有关吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-22 10:05:54

=在RESTCONF URI中表示具有特殊意义的特殊字符。如果你把它编码为%3D,你就去掉了这个特殊的意思,并把它简化成一个字符。只有当一个列表的键值或叶列表的值包含这个字符并且在URI中引用这样一个实例时,您才会这样做。

您只允许在引用列表和叶列表实例时使用=,并且在使用它时不对其进行百分比编码。

在您的示例中,GigabitEthernet应该表示一个列表/叶列表,它的键/类型接受1作为有效值。nativeinterface都是(而且只能是)容器(或anydata)。

RFC8040,第3.5.3节,在请求URI中编码数据资源标识符详细描述了这一点。

以下是同一节中的示例:

示例: 容器顶部{ list list1 { key "key1 key2 key3";.列表list2 {键"key4 key5";叶X{类型字符串;}叶-列表Y{类型uint32;} 对于上述YANG定义,容器"top“在”示例顶“YANG模块中定义,叶"X”的目标资源URI将编码如下: /restconf/data/示例-top:top/list1=key5 1,key2,key5 3/list2=key5 4,key5 5/X 对于上述YANG定义,叶列表"Y“的目标资源URI编码如下: /restconf/data/example-top:top/Y=instance-value 下面的示例演示如何在键值中对保留字符进行百分比编码。"key1“的值包含逗号、单引号、双引号、冒号、双引号、空格和正斜杠(,‘:”/)。请注意,双引号不是保留字符,不需要进行百分比编码."key2“的值是空字符串,"key3”的值是字符串"foo“。 示例URL: /restconf/data/example-top:top/list1=%2C%27"%3A"%20%2F,、foo

请特别注意最后一个示例。如果=的键值出现在list1=之后,则需要对其编码百分比。

还请注意,这些不是查询的一部分--它们是路径段(RFC3986术语)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74515905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档