使用python-onvif,有什么方法可以得到错误响应的文本?

时间:2017-04-13 18:15:26

标签: python-2.x suds python-onvif

我正在尝试使用python-onvif库和命令行客户端来使用我拥有的网络摄像头。

当事情正常时,它很好,但如果我有错误,我几乎没有任何有用的信息。

例如,如果我对cli使用了错误的密码,我最终得到:

#onvif-cli devicemgmt GetCapabilities --host 192.168.0.149 -u admin -a wrongpw
False: Unknown error: (400, u'Bad Request')

这是异常的结果,使得它从suds变为python-onvif并由onv​​if-cli工具打印。

使用wireshark进行跟踪显示实际上400响应带有正确的SOAP消息,表明auth失败。

使用pdb进行一些调试显示底层' suds'库似乎只是在吃那个文本并抛出异常。我试图使用' last_received()'在suds客户端对象中获取消息,但它没有400的内容 - 它具有正确接收的最后一条消息。

我的代码有没有办法获取400消息的内容?我很高兴得到原始字节 - 我只需要记录一些内容,以便在现场情况变坏时我至少可以知道相机认为发生了什么。

我确实尝试过“故障”。在创建suds.client.Client时选项为False,但这只是让我(400,错误请求)作为元组返回 - 它仍然没有解码内容。

系统是CentOS 6.6,suds版本是0.4,python-onvif 0.1.3,python 2.6.6,相机是带有最新固件的索尼EP580。

0 个答案:

没有答案