使用Python了解API并与之交互

 收藏

我已经安装了基本的API作为本地主机服务器,该服务器执行的功能包括添加摄像机,星形摄像机,列表摄像机,摄像机框架快照...等

我的问题是遵循文档后,我似乎仍然无法与其很好地交互并获得响应,我需要的是我用来登录并获得验证令牌的代码:

import requests
import urllib.request
import json
import base64


local_hostip = 'localhost'
username = 'admin'
password = 'admin'
auth_tok = ''


# retrieve auth token
base_url = "http://"+local_hostip+":8080/api/user/login?"
parameters = {
    "username": username,
    "password": base64.b64encode(password.encode('utf-8'))
}
auth_tok = requests.post(base_url + urllib.parse.urlencode(parameters)).json()
print(auth_tok)

I get the correct documented response with a token, so following the documentation to add camera i need 2 parameters URL and Name so i did:

base_url = "http://"+engine_ip+":8080/api/camera/add?"

parameters = {

    "url": 'rtsp://192.168.1.23/1', 

    #or video file 
    "url" : '/home/video/sample.mov'

    "name" : 'cam1'

}
r = requests.post(base_url + urllib.parse.urlencode(parameters),headers={'Authorization': auth_tok}).json()
print (r)

但我得到这个回应:

{'code': -111, 'message': None}

文档说响应应该是:

Response: {"status":"ok"}

请注意,我实际上并未将视频和url都传递给我写的URL参数,以显示我使用的任何一个我仍然会出错。 我是否需要向data = data中的请求标头添加任何内容,或者我做错了什么?

当我使用此API的Web浏览器GUI时,我可以添加摄像机甚至目录来播放具有相同参数的视频文件。但是我正在尝试使用python做同样的事情,所以我将来可以做进一步的处理

回复