示例网址是:
?API / V1 /查询的查询= UP {设备=" DEVICE_1"}
其中Device_1是@PathVariable
我用以下方法测试:
@RequestMapping(value="/api/v1/query?query=up{device=\"${device}\"}",
method = RequestMethod.GET) String
getLastPosting(@PathVariable("device") String device);
响应:
出现意外错误(type = Internal Server Error, 状态= 500)。内容:方法不允许
关于正确格式的任何想法?
答案 0 :(得分:0)
此网址看起来非常奇怪,这些大括号也会成为网址中的错误来源,需要将其替换为%7B
和%7D
我认为你最好使用更简单的,例如:
api/v1/query?query=up&device=Device_1
然后以这种方式声明你的控制器:
@RequestMapping(value="/api/v1/query", method = RequestMethod.GET)
public String getLastPosting(@RequestParam(value="query") String query,
@RequestParam(value="device") String device) {
}
其他选项会将大括号用于Unicode(但我不推荐这些)
/api/v1/query=up%7Bdevice="Device_1"%7D
@RequestMapping(value="/api/v1/{query}",method = RequestMethod.GET)
public String getLastPosting2(@PathVariable("query") String query){
// query is query=up{device="Device_1"}
// you would need to parse it to extract the device name
}
或
/api/v1/query=up%7Bdevice="Device_1"%7D
@RequestMapping(value="/api/v1/query",method = RequestMethod.GET)
public String getLastPosting3(@RequestParam("query") String query){
// query is up{device="Device_1"}
// you would need to parse it to extract the device name
}