在Orion中,我可以创建订阅:
curl localhost:1026/v2/subscriptions -s -S --header 'Content-Type: application/json' \
-d @- <<EOF
{
"description": "A subscription to get info about Room1",
"subject": {
"entities": [
{
"id": "Room1",
"type": "Room"
}
],
"condition": {
"attrs": [
"pressure"
]
}
},
"notification": {
"http": {
"url": "http://localhost:1028/accumulate"
},
"attrs": [
"temperature"
]
},
"expires": "2040-01-01T14:00:00.00Z",
"throttling": 5
}
EOF
在此示例中,Orion将在服务器http://localhost:1028/accumulate
上执行POST请求。有没有一种方法可以从Orion收到的POST中检索响应?即200、404 ...
在我的用例中,通知执行POST请求以在另一台服务器上创建一些资源。 POST返回创建的资源的位置。检索这些位置将很有用。
答案 0 :(得分:1)
Orion不会记录其发送的通知的响应。它实现了一种“即发即弃”方法,并且很少关注通知请求的响应。实际上,Orion会查看上一个通知的响应,并使用它来设置lastFailure
或lastSuccess
时间戳(视情况而定),如果响应具有status
到failed
错误代码。
可以使用中间的系统来解决您的情况。我的意思是,一些从Orion接收通知的桥接软件,转发到最终系统,获取响应,并对响应进行任何处理(例如,存储刚创建的资源的位置)。