Получение «401 не авторизован» при попытке отправить GET-запрос к systeminfo.xml - PullRequest
0 голосов
/ 06 сентября 2018

Я хочу получить конфигурацию устройств в своей учетной записи XProtect Corporate, я слежу за этим сообщением

http://doc.developer.milestonesys.com/html/reference/protocols/imageserver_getdevices.html

но я получаю 401, не авторизованный каждый раз.

До сих пор мне удавалось аутентифицировать себя и я получил токен, теперь, когда у меня есть корпоративная учетная запись, мне нужно будет отправить токен для авторизации, я использую запросы lib в python для отправки запроса GET, подобного этому

head = {'Authorization': 'Token {}'.format(myToken)}

response = requests.get('http://server-ip/rcserver/sysmteminfo.xml', headers=head)

print response

Я не уверен, как отправить мой токен в этом запросе на получение

Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 08 сентября 2018

Итак, я наконец-то смог получить конфигурацию всех устройств на сервере. Проблема заключалась в том, что описанный выше подход работает только для XProtect Enterprise и XProtect Professional. Если у вас XProtect Corporate, вам нужна аутентификация NTLM и вам нужно вызвать функцию GetConfiguration по протоколу Server SOAP.

r2= '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GetConfiguration xmlns="http://videoos.net/2/XProtectCSServerCommand"><token>' + str(myToken) + '</token></GetConfiguration></soap:Body></soap:Envelope>'
data_len = str(len(r2))
s.sendall("POST /ManagementServer/ServerCommandService.svc HTTP/1.1\r\nHost: server-ip\r\nContent-Type: text/xml; charset=utf-8\r\nAuthorization: Basic (base64 encoded '*[BASIC]\username:password*')\r\nContent-Length: "+data_len+"\r\nSOAPAction: http://videoos.net/2/XProtectCSServerCommand/IServerCommandService/GetConfiguration\r\n\r\n"+ r2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...