[英]AWS SNS http suscription return "Unsupported Media Type: Content type 'text/plain;charset=UTF-8' not supported"
我有一個 SNS 主題和一個 HTTP 訂閱,它們調用 Spring boot 端點,我的端點如下所示:
@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
媒體類型發送消息。
我了解了此文檔,並且有效地使用以下方式發送了消息:
...
Content-Type: text/plain; charset=UTF-8
...
我的問題是有什么辦法可以強制 SNS 發布者使用application/json
嗎?
或者有什么辦法可以解決我的控制器中的問題?
當我使用MediaType.TEXT_PLAIN_VALUE
和@RequestBody String body
時問題解決了
@PostMapping(value = "/path", consumes = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> action(@RequestBody String body) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.