...
Обмен данными осуществляется посредством передачи сжатых в gzip JSON документов POST запросом по протоколу HTTP.
...
Файл обмена формируется и получается в JSON-формате (кодировка UTF-8).
При передаче файл сжимается в gzip-формат.
Структура файла обмена одинакова и не зависит от направления обмена.
...
Python:
import http.client
import gzip
server_name = "server.ru"
connection_point = "/grotem/admin/SyncSolutionDatabase"
conn = http.client.HTTPConnection(server_name)
payload = '{ "Id":"f8685de0-b174-44ea-9d89-b36bab8e8043",
"TimestampFrom":0,
"TimestampTo":636219988969526110,
"DeletedEntities":[],
"ChangedEntities":[],
"FiltersToApply":[]}'
headers = {
'content-type': "application/json",
'configname': "GrotemExpress",
'configversion': "1.1.0.0",
'authorization': "Basic RGV2MTpEZXYx",
'deviceId': "66baa76a-71fe-4395-b4a6-0b77bee9526d"
}
conn.request("POST", connection_point, payload, headers)
res = conn.getresponse()
data = res.read()
print(gzip.decompress(data).decode("utf-8"))
C#:
var client = new RestClient("http://server.ru/grotem/admin/SyncSolutionDatabase");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic RGV2MTpEZXYx")
.AddHeader("configversion", "1.1.0.0")
.AddHeader("configname", "GrotemExpress")
.AddHeader("content-type", "application/json")
.AddHeader("deviceId", "66baa76a-71fe-4395-b4a6-0b77bee9526d")
.AddParameter("application/json", "{\"Id\":\"f8685de0-b174-44ea-9d89-b36bab8e8043\",\"TimestampFrom\":0,\"TimestampTo\":636219988969526110,\"DeletedEntities\":[],\"ChangedEntities\":[],\"FiltersToApply\":[]}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
...