“Net :: Netconf :: Manager”将RPC请求中的下划线转换为连字符
问题描述:
我正在使用 Net::Netconf::Manager
来使用RPC命令查询设备。在RPC命令中,我应该发送一个参数列表,所以我在一个哈希中添加了查询参数。其中一种说法是verbosity_level
“Net :: Netconf :: Manager”将RPC请求中的下划线转换为连字符
请注意我在这个参数中使用了下划线_
。当我打印散列时,它仍然是下划线。
但是,当我打印发送到设备的XML RPC请求,参数更改为verbosity-level
<verbosity-level>abcd</verbosity-level>
,而不是
<verbosity_level>abcd</verbosity_level>
所以设备说,它不知道这样的论据。
为什么下划线被转换为连字符?
答
这样做的代码是在线的492 Net/Netconf/Device.pm
。这是一个简单的替换,而且也没有注释,以解释为什么它的存在
所有我能想到的做的是注释掉该行
($tag = $field) =~ s/_/-/g
与
$tag = $field
更换其应该为你做点事情。与此同时,您可以发送电子邮件至瞻博网络Perl团队在[email protected]并询问。如果你这样做,请让我们知道回应
可能是Junos的一个工件,它没有在其XML标签中加下划线*,并且在客户化RPC请求时添加了一些糖。 [一些例子显示它在他们的方法上完成](https://www.juniper.net/documentation/en_US/junos13.2/topics/task/program/netconf-perl-client-application-submitting-requests.html)。我猜想直到最近还没有很多其他供应商在使用netconf。 – salparadise
感谢鲍罗廷。我在github的netconf-perl API中提出了一个问题。似乎他们只是在RPC请求中使用连字符而不是下划线来进行标准化。这个问题可以在以下链接中查到https://github.com/Juniper/netconf-perl/issues/35 –