为什么 PayPal REST API 需要 Content-Type 用于 content-less(无实体)POST 请求?

Why does PayPal REST API require a Content-Type for content-less (no entity) POST requests?

使用PayPal RESTAPI,取消授权只需要POST/v1/payments/authorization/<Authorization-Id>/void,没有任何实际内容。由于 HTTP 实体为空,我没想到需要 Content-Type header 并将其设置为 application/json。如果我不设置它,我的请求将被拒绝。当我使用 Spring 的 RestTemplate 和 Jackson 映射时,提供 null 请求不会设置 Content-Type,现在我不得不自己设置它。

您认为这个限制是合法的还是一个错误? 对我来说,没有body=没有内容=没有content-type.

我们将 POST 要求的 content-type 保持为一般性的兴趣是为了将来的向后兼容性。如果我们在未来添加新的媒体类型,我们不想假设您的内容是什么(尽管今天几乎 application/json)。 对于 void,如果没有字段,则不能保证我们将来不会添加字段。

考虑到这一点:您关于 RestTemplate 和一般空请求的问题很有趣,我们会仔细研究一下,看看在没有指定字段时我们是否可以做一些更聪明的事情.