SessionLoginEx
Создаёт новую пользовательскую сессию.
Запрос
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/SessionLoginEx"
<?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>
<SessionLoginEx xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<baseName>string</baseName>
<sessionSettings>string</sessionSettings>
<flags>int</flags>
</SessionLoginEx>
</soap:Body>
</soap:Envelope>
- Параметры
-
- sessionId
-
Идентификатор пользовательской сессии
- sessionSettings
-
Параметры сессии
- flags
-
Флаги, определяющие необходимость включения в SOAP-ответ дополнительной информации:
-
0
— без флага. -
1
— включить информацию по библиотекам карточек. -
2
— включить информацию по типам карточек. -
4
— включить информацию по справочниками. -
8
— включить информацию по пакетам установки. -
16
— включить схему безопасности.
-
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)
— размер блока данных (в Кб) для пересылки файлов. -
LocaleID (int)
— числовой идентификатор используемого языка. -
MinCompressSize (int)
— минимальных блок данных (в Кб) который нужно сжимать.
Рекомендуется всегда передавать: 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>
<SessionLoginExResponse xmlns="http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/">
<sessionId>guid</sessionId>
<sessionLoginResponse>
<ID>guid</ID>
<PageCount>unsignedInt</PageCount>
<RowCount>unsignedInt</RowCount>
<FirstPage>string</FirstPage>
<UsingCompression>boolean</UsingCompression>
</sessionLoginResponse>
</SessionLoginExResponse>
</soap:Body>
</soap:Envelope>
Ответ содержит идентификатор открытой сессии, а также её параметры. Серверный курсор будет открыт при необходимости.
Пример запроса
session.headers['SOAPAction'] = 'http://schemas.docsvision.com/Platform/2009-02-03/StorageServer/SessionLoginEx' (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>
<SessionLoginEx 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>
<flags>16</flags>
</SessionLoginEx>
</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 | Разбираем ответ и выводим идентификатор открытой сессии. |