0

我有客户端应用程序向没有 Accept 标头的端点发送请求。端点因“找不到可接受的表示”而失败,但我希望控制器无论如何都处理请求。

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

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

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

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

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)

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

4

0 回答 0