我遇到了cURL post命令:
要通过其API与PTZ摄像机进行交互,我可以使用有效负载。
我使用一个有效的命令并返回一个令牌(下面的第一个)。
但是,例如,当我想使用ptzctrl命令设备时,它系统地返回curl: no URL specified!
#!/bin/bash
vartoken=`curl -i -s -k -X $'POST' --data-binary $'[{\"cmd\":\"Login\",\"action\":0,\"param\":{\"User\":{\"userName\":\"my_username\",\"password\":\"my_password\"}}}]' $'http://192.168.x.xxx:yyyy/cgi-bin/api.cgi?cmd=Login&token=null' | grep name |sed -r 's/(.*: \")(.*)(\".*)/\2/g'`
echo $vartoken
和
#!/bin/bash
curl -g -v -k -X $'POST' --data-binary $'[{\"cmd\":\"PtzCtrl\",\"action\":0,\"param\":{\"channel\":0,\"op\":\"ToPos\",\"speed\":32,\"id\":2}}]'$"http://192.168.x.xxx:yyyy/cgi-bin/api.cgi?cmd=PtzCtrl&token=${vartoken}"
答案 0 :(得分:0)
在另一篇文章中给出的解决方案,我在那里进行了更正: 我错过了$“ http ...之前的空格 现在,新的请求是:
curl -g -v -k -X $'POST' --data-binary $'[{\"cmd\":\"PtzCtrl\",\"action\":0,\"param\":{\"channel\":0,\"op\":\"ToPos\",\"speed\":32,\"id\":2}}]' $"http://192.168.x.xxx:yyyy/cgi-bin/api.cgi?cmd=PtzCtrl&token=${vartoken}"
感谢阅读。
欢呼声,djo