/// <summary> /// Выполнить запрос к 1С. /// </summary> /// <typeparam name="T">Уберем потом.</typeparam> /// <param name="url">Относительный URL запроса.</param> /// <param name="data">Данные, передаваемые ва 1С.</param> /// <param name="requestTransform">Если что-то с умолчаниями запроса нужно поменять.</param> /// <param name="method">Метод запроса.</param> /// <returns>Информация о транзакции.</returns> protected C1Rescponse <T> Request <T>(string url, object data, Action <RestRequest> requestTransform = null, Method method = Method.POST) { Argument.Require(!string.IsNullOrEmpty(url), "URL метода пустой."); Argument.Require(data != null, "Переданные данные пустые."); string message = JsonConvert.SerializeObject(data); byte[] msgBytes = this.ServiceApiEncoding.GetBytes(message); byte[] encodedSignature = CryptographyUtility.Sign(msgBytes); RestRequest request = new RestRequest(url, method); request.AddHeader("Content-type", "multipart/form-data"); request.AddFileBytes("request", encodedSignature, "request.json", "application/json"); requestTransform?.Invoke(request); IRestResponse <C1Rescponse <T> > response = this.ServiceApiClient.Execute <C1Rescponse <T> >(request); Argument.Require(IsSuccessStatusCode(response.StatusCode), "Возникла ошибка при выполнении запроса к 1С.", new Exception(response.Content)); return(response.Data); }