Как залить фото контакта через OData?

Добрый день, кто то может подсказать как залить фото контакта через OData, используя xml или json? Знаю что вопрос поднимался https://community.terrasoft.ru/forum/topic/10486, тему изучил, но так и не смог понять как реализовать подобное не на C#.
Отправляю POST запрос в SysImageCollection, передаю Name = имя_файла и Data = стрим_файла, в ответ получаю ошибку

При обработке этого запроса произошла ошибка.При обработке этого запроса произошла ошибка.System.Data.Services.DataServiceException at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)
 at System.Data.Services.Serializers.Deserializer.HandlePostRequest()
 at System.Data.Services.DataService`1.HandlePostOperation(RequestDescription description, IDataService dataService)
 at System.Data.Services.DataService`1.ProcessIncomingRequest(RequestDescription description, IDataService dataService)
 at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)
 at System.Data.Services.DataService`1.HandleRequest()Invalid character in the given encoding. Line 6, position 15.System.Xml.XmlException at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
 at System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32& bytesCount, Int32& charsCount)
at System.Xml.XmlTextReaderImpl.GetChars(Int32 maxCharsCount)
at System.Xml.XmlTextReaderImpl.ReadData()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadInternal(Boolean ignoreInStreamErrors)
at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadNextAndCheckForInStreamError()
at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadInternal(Boolean ignoreInStreamErrors)
at Microsoft.Data.OData.Atom.BufferingXmlReader.Read()
at System.Xml.XmlReader.SkipSubtree()
at Microsoft.Data.OData.Atom.ODataAtomEntryAndFeedDeserializer.FindTypeName()
at Microsoft.Data.OData.Atom.ODataAtomReader.ReadEntryStart()
at Microsoft.Data.OData.Atom.ODataAtomReader.ReadAtStartImplementation()
at Microsoft.Data.OData.ODataReaderCore.ReadImplementation()
at Microsoft.Data.OData.ODataReaderCore.InterceptException[T](Func`1 action)
at System.Data.Services.Serializers.EntityDeserializer.ReadEntry(ODataReader odataReader, SegmentInfo topLevelSegmentInfo)
at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo)
at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)

Возможно какие то проблемы со стримом, но что именно там не так не могу понять, содержит следующие данные http://goo.gl/5jRcr6.
Поэтому буду признателен если у кого то есть пример реализации при помощи отправки json или xml данных

Нравится

2 комментария

Процесс создания файлов состоит из двух запросов. Первым делом создается запись в таблице файлов, без заполненной бинарной колонки. Второй запрос пересылает уже бинарные данные (PreviewData - это имя бинарной колонки)

POST http://mybpmonline:8082/7/ServiceModel/EntityDataService.svc/SysImageCo… HTTP/1.1
Connection: keep-alive
Content-Length: 91
MaxDataServiceVersion: 3.0
Content-Type: application/json;odata=verbose
ForceUseSession: true
Accept: application/json;odata=verbose
DataServiceVersion: 1.0
Accept-Encoding: gzip, deflate
Accept-Language: en-US
X-Requested-With: com.bpmonline.mobile70

{"Name":"640a7878-0637-4d09-b9de-5834fd559998","Id":"640a7878-0637-4d09-b9de-5834fd559998"}

PUT http://mybpmonline:8082/7/ServiceModel/EntityDataService.svc/SysImageCo… HTTP/1.1
Content-Type: multipart/form-data;boundary=+++++
MaxDataServiceVersion: 3.0
ForceUseSession: true
Accept: application/octet-stream,application/json;odata=verbose
Connection: close
Content-Length: 7199
Accept-Encoding: gzip

[ЗДЕСЬ В ТЕЛЕ ЗАПРОСА СОДЕРЖАТСЯ БИНАРНЫЕ ДАННЫЕ]

Спасибо большое, помогло

Показать все комментарии