Orion NGSI10 便利操作上的 HTTP 400 错误
HTTP 400 error on Orion NGSI10 convenience operations
我在 Orion 上使用便捷操作时收到 HTTP 400 错误:
要求:
GET /v1/contextEntities/mydevice
HTTP/1.1 Host: XXX.XXX.XXX.XXX:1026
Content-Type: application/json
Accept: application/json
Fiware-Service: myfiwareservice
Fiware-ServicePath: /
X-Auth-Token:XXXXXXXXXXX
回复:
{
"orionError": {
"code": "400",
"reasonPhrase": "Bad Request",
"details": "Sorry, no request treating object found for RequestType /IndividualContextEntity/"
}
}
我已经使用常规 NGSI10 操作验证了我的实体存在,工作正常。
当 Context Broker 受到 PEP 代理的保护并且它收到一个请求时会出现问题:
- 有header'Content-type: application/json'
- 没有任何body
在这种情况下,由于使用了一些库,PEP 代理转发添加空 JSON body 的请求,该请求到达上下文代理,导致您提到的错误。
这种情况下的解决方案是从没有任何 body 的请求(通常是 GET 请求)中删除 'Content-type: application/json' header。
编辑: 在上面的回答中我们引用了 Steelskin PEP implementation。其他 PEP 实现的行为可能有所不同。
我在 Orion 上使用便捷操作时收到 HTTP 400 错误:
要求:
GET /v1/contextEntities/mydevice
HTTP/1.1 Host: XXX.XXX.XXX.XXX:1026
Content-Type: application/json
Accept: application/json
Fiware-Service: myfiwareservice
Fiware-ServicePath: /
X-Auth-Token:XXXXXXXXXXX
回复:
{
"orionError": {
"code": "400",
"reasonPhrase": "Bad Request",
"details": "Sorry, no request treating object found for RequestType /IndividualContextEntity/"
}
}
我已经使用常规 NGSI10 操作验证了我的实体存在,工作正常。
当 Context Broker 受到 PEP 代理的保护并且它收到一个请求时会出现问题:
- 有header'Content-type: application/json'
- 没有任何body
在这种情况下,由于使用了一些库,PEP 代理转发添加空 JSON body 的请求,该请求到达上下文代理,导致您提到的错误。
这种情况下的解决方案是从没有任何 body 的请求(通常是 GET 请求)中删除 'Content-type: application/json' header。
编辑: 在上面的回答中我们引用了 Steelskin PEP implementation。其他 PEP 实现的行为可能有所不同。