Здравствуйте!
Пытаюсь создать сотрудника через Odata из 1С.
Получаю вот такую ошибку:
version="1.0" encoding="utf-8" standalone="yes"?> xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">>
4> xml:lang="">Unsupported media type requested.>>>Unsupported media type requested.>>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()>>>A supported MIME type could not be found that matches the content type of the response. None of the supported type(s) 'application/atom+xml;type=entry, application/atom+xml, application/json;odata=verbose' matches the content type 'application/octet-stream'.>>Microsoft.Data.OData.ODataContentTypeException>> at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeName, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType& mediaType, Encoding& encoding, ODataPayloadKind& selectedPayloadKind)
at Microsoft.Data.OData.MediaTypeUtils.GetFormatFromContentType(String contentTypeHeader, ODataPayloadKind[] supportedPayloadKinds, MediaTypeResolver mediaTypeResolver, MediaType& mediaType, Encoding& encoding, ODataPayloadKind& selectedPayloadKind, String& batchBoundary)
at Microsoft.Data.OData.ODataMessageReader.ReadFromInput[T](Func`2 readFunc, ODataPayloadKind[] payloadKinds)
at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo)
at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)>>>>
О чем эта ошибка? В чем может быть проблема?
Получение данных GET запросом работает. А вот POST и PUT дают ошибку.
Сформированный в 1C xml:
version="1.0" encoding="UTF-8"?>
xmlns="http://www.w3.org/2005/Atom">
type="application/xml">
xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">Александр Пушкин>
xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">Александр Сергеевич
>
>
>
>
Код 1С если интересно:
XMLТекст = Новый ЗаписьXML;
XMLТекст.УстановитьСтроку("UTF-8");
XMLТекст.ЗаписатьОбъявлениеXML();
XMLТекст.ЗаписатьНачалоЭлемента("entry");
XMLТекст.ЗаписатьАтрибут("xmlns", "http://www.w3.org/2005/Atom");
XMLТекст.ЗаписатьНачалоЭлемента("content");
XMLТекст.ЗаписатьАтрибут("type", "application/xml");
XMLТекст.ЗаписатьНачалоЭлемента("properties");
XMLТекст.ЗаписатьАтрибут("xmlns", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
XMLТекст.ЗаписатьНачалоЭлемента("Name");
XMLТекст.ЗаписатьАтрибут("xmlns", "http://schemas.microsoft.com/ado/2007/08/dataservices");
XMLТекст.ЗаписатьТекст("Александр Пушкин");
XMLТекст.ЗаписатьКонецЭлемента();
XMLТекст.ЗаписатьНачалоЭлемента("Dear");
XMLТекст.ЗаписатьАтрибут("xmlns", "http://schemas.microsoft.com/ado/2007/08/dataservices");
XMLТекст.ЗаписатьТекст("Александр Сергеевич");
XMLТекст.ЗаписатьКонецЭлемента();
XMLТекст.ЗаписатьКонецЭлемента();
XMLТекст.ЗаписатьКонецЭлемента();
XMLТекст.ЗаписатьКонецЭлемента();
СтрXML = XMLТекст.Закрыть();
Соединение = Новый HTTPСоединение("demo.bpmonline.com",,"User","Password",,,Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено));
АдресРесурса = "/0/servicemodel/EntityDataService.svc/ContactCollection";
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
HTTPЗапрос.Заголовки.Вставить("Accept", "application/atom+xml");
HTTPЗапрос.Заголовки.Вставить("ContentType", "application/atom+xml;type=entry");
HTTPЗапрос.УстановитьТелоИзСтроки(СтрXML);
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос); //POST
Объект.ОписаниеОбъекта = HTTPОтвет.ПолучитьТелоКакСтроку();
Соединение = Неопределено;