我有一个SNS主题和一个HTTP订阅,它们调用Spring引导端点,我的端点看起来像这样:
@RestController
public class MyController {
@PostMapping(value = "/path")
public ResponseEntity<Void> action(@RequestBody Object body) {
return ResponseEntity.noContent().build();
}
}
在本主题中,当我使用AWS CLI发布消息时,我尝试调用此端点,如下所示:
aws sns publish --topic-arn arn:aws:sns:eu-west-1:000000000000:MyTopic \
--message '{"name": "test"}' --endpoint-url http://localhost:4566
但我得到一个错误:
Unsupported Media Type: Content type 'text/plain;charset=UTF-8' is not supported
我将MediaType.TEXT_PLAIN_VALUE
添加到代码中:
@PostMapping(value = "/path", consumes = MediaType.TEXT_PLAIN_VALUE)
但我得到了同样的错误。
由于某种原因,该主题使用不同的text/plain
媒体类型发送邮件。
我学习了这个documentation,并且有效地使用以下命令发送消息:
...
Content-Type: text/plain; charset=UTF-8
...
我的问题是,有没有办法强迫SNS发布者使用application/json
?
或者有什么方法可以解决我的控制器中的问题吗?
1条答案
按热度按时间dwbf0jvd1#
当我使用
MediaType.TEXT_PLAIN_VALUE
和@RequestBody String body
时,问题解决了