SessionLogin
Создаёт новую пользовательскую сессию.
Запрос
POST /DocsVision/StorageServer/StorageServerService.asmx HTTP/1.1
Host: DOCSVISION_SERVER.COM
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/SessionLogin"
<?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>
<SessionLogin xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<baseName>string</baseName>
<sessionSettings>string</sessionSettings>
</SessionLogin>
</soap:Body>
</soap:Envelope>
- Параметры
-
- baseName
-
Название базы данных. Если не указана, использует база данных по умолчанию
- sessionSettings
-
Параметры сессии
sessionSettings
должна соответствовать схеме элемента:<xs:element name="Settings">
<xs:complexType>
<xs:sequence>
<xs:element name="Setting" maxOccurs="unbounded" type="xs:string">
<xs:complexType>
<xs:attribute name="Name" type="xs:string"></xs:attribute>
<xs:attribute name="Type" type="xs:string"></xs:attribute>
<xs:attribute name="ReadOnly" type="xs:int"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
-
AppID (string)
— идентификатор приложения, из которого установлено соединение. -
BaseName (string)
— псевдоним базы данных. -
ClientVersion (int)
— версия клиента. -
Compression (boolean)
— необходимость использовать сжатие при передаче данных по сети. -
ComputerAddress (string)
— IP-адрес клиента. -
ComputerName (string)
— имя компьютера-клиента. -
FileBlockSize (int)
— размер блока данных (в KB) для пересылки файлов. -
LocaleID (int)
— числовой идентификатор используемого языка. -
MinCompressSize (int)
— минимальных блок данных (в KB) который нужно сжимать.
Рекомендуется всегда передавать: ComputerAddress
, ComputerName
и LocaleID
.
Ответ
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?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>
<SessionLoginResponse xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<sessionId>guid</sessionId>
<userSettings>string</userSettings>
</SessionLoginResponse>
</soap:Body>
</soap:Envelope>
Ответ содержит идентификатор открытой сессии, а также все её параметры.
Пример запроса
session.headers['SOAPAction'] = 'http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/SessionLogin' (1)
body = """<?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>
<SessionLogin xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<baseName></baseName>
<sessionSettings><Settings><Setting Name="ComputerAddress" Type="string" ReadOnly="1">192.168.0.2</Setting><Setting Name="ComputerName" Type="string">connectedComputer</Setting><Setting Name="LocaleID" Type="int">1049</Setting></Settings></sessionSettings>
</SessionLogin>
</soap:Body>
</soap:Envelope>""" (2)
response = session.post(url, data=body) (3)
responseParsed = ElementTree.fromstring(response.content)
print(responseParsed.findtext('.//{http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/}sessionId')) (4)
1 | Изменяем цель запроса в заголовке запроса. |
2 | SOAP-сообщение. |
3 | Отправляем SOAP-сообщение. |
4 | Разбираем ответ и выводим идентификатор открытой сессии. |