我正在阅读有关OCB subscriptions的文档。我找不到任何内容。只有一个Python示例,名为accumulator.py(我不知道Python :(我是Java开发人员)。我指的是Orion因订阅而发送的通知,您可以在属性中指明的服务reference
是GET服务还是POST?它需要任何参数吗?我正在编写一个带有param的REST GET服务,这是Orion Context Broker必须发送给我的JSON字符串来更新我的应用程序。这是正确的吗?
请帮帮我吗?
提前致谢
答案 0 :(得分:2)
我建议您查看Orion Context Broker User Manual,其中提供了有关HTTP谓词,操作URL和参数的所有信息。
更新:关于Orion发送的通知,手册includes some examples,如下所示:
POST http://localhost:1028/accumulate
Content-Length: 492
User-Agent: orion/0.9.0
Host: localhost:1028
Accept: application/xml, application/json
Content-Type: application/json
{
"subscriptionId" : "51c0ac9ed714fb3b37d7d5a8",
"originator" : "localhost",
"contextResponses" : [
{
"contextElement" : {
"attributes" : [
{
"name" : "temperature",
"type" : "float",
"value" : "26.5"
}
],
"type" : "Room",
"isPattern" : "false",
"id" : "Room1"
},
"statusCode" : {
"code" : "200",
"reasonPhrase" : "OK"
}
}
]
}
正如您在上面的片段中看到的,使用的动词是POST(不是GET)。因此,您应该准备代码来监听通知,以便在正确的URL中接收POST请求(在此示例中,URL为/accumulate
),并根据您的应用程序以您需要的方式处理有效负载。
例如,在Python中,您可以使用装饰器(使用Flask框架):
@app.route('/accumulate', methods=['POST'])
def process_notification():
# Do whatever you want with the request payload
我不知道REST服务器编程如何在Java中工作,但我想类似的方法是可行的。