目前我已正确注册了Gson Provider 在我的请求消耗或生成json时使用。
问题是我有一个需要Post数据的请求 要么是byte[], InputStream, Reader, or String。
我需要“原始”数据的原因是我有一些第三方代码 它希望自己进行反序列化。
无论我指定Post方法有哪四种类型, GsonReader会抱怨,这是正确的。
预期字符串但是BEGIN_OBJECT
根据类型的不同,会出现不同的错误,但这一切都归结为 事实上,我不希望这个Provider / MessageBodyReader运行。
另外,我无法控制已发布数据的Accept和Content-type标头。 他们将是application / json。
答案 0 :(得分:1)
您可以在过滤器中“修改”请求的接受/内容类型标头。因此,如果有任何方法可以识别出此请求,您不想使用GSON,则可以编写修改标题的ContanerRequestFilter。
如果使用GSON提供程序依赖于请求与之匹配的方法,则可以实现ResourceFilterFactory,该方法仅适用于适用的方法,应用(返回)ContainerRequestFilter(将内容类型标头修改为json以外的其他类型)(您可以甚至引入一个自定义注释,用它来注释这样的方法,并且只有在传递给它的方法用该注释注释时,才在resourcefilterfactory中返回containerrequestfilter。
以下是相关链接: