使用Grails 3呈现空的HTTP响应

时间:2017-09-26 07:58:50

标签: grails groovy grails-3.1

我的目标是在具有

的Grails 3.1控制器方法中呈现HTTP响应
  • 给定的状态代码(主要是204,但可能是其他人,例如200
  • 没有Content-TypeContent-Encoding标题(因为没有内容,对吗?)

render(status: 204)添加了一个任意Content-Type: application/json标题。

此外,在这种情况下,此方法(请参阅grails.artefact.controller.support.ResponseRenderer.render())会调用 HttpServletResponse.sendError() ,但这不是错误。那是为什么?

目前,我们通过直接处理response来解决此问题:

response.status = statusCode.value()
response.flushBuffer()

但这会阻止我们在发送响应之前使用 Grails拦截器 after方法执行某些操作。这就是为什么我们正在寻找一种不同的方式,它不会改变HTTP响应(比如添加Content-Type标题)。

1 个答案:

答案 0 :(得分:-2)

你可以这样写:

cordova plugin rm cordova-plugin-compat --force
cordova plugin add cordova-plugin-compat@1.2

Execution failed for task ':transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: o
rg/apache/cordova/BuildHelper.class

这将使用{strong> text / html; charset = utf-8 以response.status = 204 render "" 标题回复。要更改内容类型,您可以在Grails中使用内容协商。

要完全删除Content-Type标题,您可以尝试Content-Type