簡體   English   中英

AWS SNS http 訂閱返回“不支持的媒體類型:不支持內容類型‘text/plain;charset=UTF-8’”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM