我是OneM2M协议的新手。 在搜索OneM2M TS0001文档时,我不知道确定Notification MIME类型。
如何确定通知的MIME类型(例如'application / json','application / xml')?
我在“订阅”的属性中找不到任何内容。
这是来自以下站点的应用程序开发人员指南的示例。他们如何决定以“ application / xml”类型发送此通知?
将通知发布到ADN-AE1 带有XML有效负载的HTTP请求
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
答案 0 :(得分:1)
您应该查看TS-0004“服务层核心协议规范”的第6.7节“ oneM2M特定的MIME媒体类型”。在这里,您可以找到所有oneM2M特定的MIME类型。
根据该表,通知和XML编码的正确MIME类型为 application / vnd.onem2m-ntfy + xml 。
也就是说,您还可以检查TS-0009“ HTTP协议绑定”的第6.4.2节“接受”和6.4.3节“内容类型”。规范在这里说,例如 Content-Type :
任何包含消息主体的HTTP请求或响应都应包含设置为“ application / xml”,“ application / json”或oneM2M TS-0004条款6.7中定义的oneM2M定义的媒体类型之一的Content-type标头
由于可以通过查看元素* m2m:sgn“来明确确定资源的类型,因此通常将* application / xml”设置为XML编码资源的Content-Type就足够了。
您可以在http://www.onem2m.org/technical/published-drafts
下载oneM2M规范的最新版本。更新
CSE通过查看 notificationURI 属性的可选 ty 参数来确定通知消息的编码类型(xml,json或cbor)。
这在TS-0001的9.6.8节“资源类型订阅”中指定。通知的订阅者可以将类型参数(例如ty=xml
)添加到 notificationURI 。如果不这样做,则CSE将选择默认编码。