我正在尝试在Micronaut控制器中获取 raw 请求正文。端点必须使用application / json,但是我们需要原始的json来生成必须与标头中找到的签名匹配的签名。无论我设置了哪种@Body类型,或者即使我获取HttpRequest.body,它都已被修改。不幸的是,我正在实现一个第三方API,否则我会将内容类型更改为text / plain,一切都将正常工作。
std::is_aggregate_v<T> == true
请注意,DefaultHttpClient显示未修改的正文
Sending HTTP Request: POST /controlMessages DefaultHttpClient - Chosen Server: localhost(27813) DefaultHttpClient - signature: 8e85acdb42cb5e14e15f1fbd954a8e98f1912fa1283bace5913 DefaultHttpClient - host: localhost:27813 DefaultHttpClient - connection: close DefaultHttpClient - content-type: application/json DefaultHttpClient - content-length: 103 DefaultHttpClient - Request Body DefaultHttpClient - ---- DefaultHttpClient - {"cancelControlMessages": [ {"remoteId": "some-remote-id", "sentAt": "2019-11-06T14:55:15.603698Z"} ]} DefaultHttpClient?[0;39m - ---- ControlController?[0;39m - body={"cancelControlMessages":[{"remoteId":"some-remote-id","sentAt":"2019-11-06T14:55:15.603698Z"}]}
答案 0 :(得分:2)
这是在1.3.0.M1中添加的。您可以使用@Body payload: String
来接收原始邮件