cannot unmarshal string into Go value of type models.SaveDashboardCommand
在Java服务端使用retrofit发起http请求,创建grafana告警面板时,报上述错误
打印retrofit 请求日志如下
–> POST http://xxxxx/api/dashboards/db http/1.1
Content-Type: application/json
Content-Length: 62
Authorization:
DgxOH0=
Host: 9.218.23.159:8081
Connection: Keep-Alive
Accept-Encoding: gzip
User-Agent: okhttp/3.14.9
“{“folderId”:xxx,“overwrite”:false,“dashboard”:”"}"
–> END POST (62-byte body)
<-- 400 Bad Request http://xxxx/api/dashboards/db (96ms)
原因: 请求体json被转义、请求体的类型类型是String,
@POST("dashboards/db")
@Headers("Content-Type: application/json")
Response<Object> method(@Body String param);
解决办法:
需修改为RequestBody
@POST("dashboards/db")
@Headers("Content-Type: application/json")
Response<Object> method(@Body RequestBody param);
使用时
RequestBody body = RequestBody.create(
MediaType.parse("application/json"), stringparam);