Определение типа сообщения MIME

Я новичок в протоколе OneM2M. В поисках документов OneM2M TS0001 у меня нет представления об определении типа MIME уведомления.

Как определить тип MIME (например, "application / json", "application/xml") уведомления?

Я не смог найти ничего в атрибутах подписки.

Это пример руководства разработчика приложения с сайта ниже. Как они решили отправить это уведомление как тип "application/xml"?


Опубликовать уведомление для ADN-AE1 HTTP-запроса с полезной нагрузкой XML

POST / HTTP/1.1
Host: 192.168.0.10:9090
X-M2M-Origin: /mn-cse
X-M2M-RI: notif-12345
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>
<m2m:sgn xmlns:m2m="http://www.onem2m.org/xml/protocols" rn="cin-394798749">
  <nev>
    <rep>
      <m2m:cin>
        <ty>4</ty>
        <ri>cin-394798749</ri>
        <pi>cnt-790965889</pi>
        <ct>20150925T050534</ct>
        <lt>20150925T050534</lt>
        <et>20151107T154802</et>
        <st>0</st>
        <cnf>text/plain:0</cnf>
        <cs>3</cs>
        <con>ON</con>
      </m2m:cin>
    </rep>
  </nev>
  <sur>/mn-cse/sub-856593979</sur>
</m2m:sgn>

http://www.onem2m.org/application-developer-guide/implementation/notifications

1 ответ

Решение

Вы должны взглянуть на TS-0004 "Спецификация протокола ядра сервисного уровня", раздел 6.7 "Типы носителей MIME, специфичные для oneM2M". Там вы можете найти все типы MIME, относящиеся к oneM2M.

Согласно этой таблице, правильным типом MIME для уведомления и кодировки XML является application / vnd.onem2m-ntfy + xml.

Тем не менее, вы также можете проверить TS-0009 "Привязка протокола HTTP", разделы 6.4.2 "Принять" и 6.4.3 "Тип содержимого". Здесь в спецификации сказано, например, для Content-Type:

Любой HTTP-запрос или ответ, содержащий тело сообщения, должен включать в себя заголовок Content-type, установленный в один из "application/xml", "application/json" или oneM2M, определенные типы мультимедиа, определенные в п. 6.7 oneM2M TS-0004.

Поскольку можно однозначно определить тип ресурса, посмотрев на элемент * m2m: sgn ", обычно достаточно установить *application/xml" в качестве Content-Type для кодированных ресурсов XML.

Вы можете скачать последние версии спецификаций oneM2M по адресу http://www.onem2m.org/technical/published-drafts

Обновить

CSE определяет тип кодировки (xml, json или cbor) для сообщения уведомления, просматривая необязательный параметр ty атрибута tificationURI.

Это указано в TS-0001, раздел 9.6.8 "Тип подписки на ресурсы". Подписчик уведомления может добавить параметр типа (например, ty=xml) к уведомлению. Если это опущено, то CSE выбирает кодировку по умолчанию.

Другие вопросы по тегам