Добрый день.
Что за зверь такой этот multipart?
Помогите правильно выставить веб сервис в Creatio и написать запрос в Постмане. Надо одним запросом передать описание объекта для его создания и файл. Все что нашел это https://academy.terrasoft.ua/docs/7-17/developer/integrations_and_api/d… но я понимаю что тут идет речь о создании запроса в среде Creatio.
Нравится
Александр,
про multipart вот пара ссылок:
https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html
Creatio просто поддерживает его
Про передачу в одном запросе. Вы можете использовать все, что предоставляет вам .net. Как простой пример - это метод по приему POST запроса с параметрами. Часть параметров - информация о файле, а один - сам файл (тип параметра Stream)
Спасибо, Артем.
Также пытаюсь выгрузить в одном запросе информацию о файле и сам файл, получил ошибку "500System.ServiceModel.ServiceActivationException"
Отдельно FileService/GetFile работает, а как получить изнутри файл и упаковать в один запрос с информацией о файле? Делаю по аналогии с внешним запросом, ответ преобразую в BLOB, из него получаю stream а дальше конвертирую в Base64.
var url = "http://localhost:82/0/rest/FileService/GetFile/2eebaeaa-5ebb-8942-0a65-0c5987ab8508/2eeca28b-3553-4195-adef-ae70c56e46ca"; var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "GET"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Flush(); streamWriter.Close(); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { string contents = streamReader.ReadToEnd(); byte[] byteArray = Encoding.UTF8.GetBytes(contents); MemoryStream stream = new MemoryStream(byteArray); result = stream; }
в запрос втавляю так
byte[] byteArray = Encoding.UTF8.GetBytes(""); MemoryStream newfilestream = new MemoryStream(byteArray); GetFile(newfilestream); takemessage.file = Convert.ToBase64String(newfilestream.ToArray());
А если по-сути, то при попытке прописать тип параметра Stream получил ошибку
The type or namespace name 'stream' could not be found (are you missing a using directive or an assembly reference?)