告诉Spring Boot REST端点允许缺少请求标头的请求

时间:2019-06-02 16:53:46

标签: rest spring-boot http-accept-header

我有一些客户端应用程序,它们将请求发送到没有Accept标头的端点。端点失败并显示“找不到可接受的表示形式”,但我还是希望控制器处理请求。

我正在编写一个处理REST API请求并返回OPDS提要的Java应用。当客户端发送请求并包含标头(在iOS上,所有客户端都包含“ accept = / ”)时,端点将按预期工作。

但是,当客户端(我在Android上测试过的所有内容)不包含此标头时,Spring不会将请求传递给控制器​​方法,而是返回HTTP 406响应而不是数据。

无论接受标头是否存在,我都希望调用controller方法,并且始终返回内容。

没有太多要显示的代码,因为这更多是集成问题。

所有iOS客户端均使用以下标头提交请求:

2019-04-27 14:07:16.362 DEBUG 74305 --- [nio-7171-exec-5] o.c.web.opds.OPDSRequestInterceptor      : Header[accept]=*/*
2019-04-27 14:07:16.362 DEBUG 74305 --- [nio-7171-exec-5] o.c.web.opds.OPDSRequestInterceptor      : Header[accept-language]=en-us
2019-04-27 14:07:16.362 DEBUG 74305 --- [nio-7171-exec-5] o.c.web.opds.OPDSRequestInterceptor      : Header[connection]=keep-alive
2019-04-27 14:07:16.362 DEBUG 74305 --- [nio-7171-exec-5] o.c.web.opds.OPDSRequestInterceptor      : Header[accept-encoding]=gzip, deflate
2019-04-27 14:07:16.362 DEBUG 74305 --- [nio-7171-exec-5] o.c.web.opds.OPDSRequestInterceptor      : Header[user-agent]=Chunky/2.5.9002 CFNetwork/978.0.7 Darwin/18.5.0

但是Android客户端都发送了:

2019-04-27 14:02:06.724 DEBUG 74305 --- [nio-7171-exec-1] o.c.web.opds.OPDSRequestInterceptor      : Header[connection]=Keep-Alive
2019-04-27 14:02:06.724 DEBUG 74305 --- [nio-7171-exec-1] o.c.web.opds.OPDSRequestInterceptor      : Header[user-agent]=Apache-HttpClient/UNAVAILABLE (java 1.5)

我希望无论接收标头如何,方法都接收请求。

0 个答案:

没有答案