Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 覆盖头部请求的内容类型_Http_Response_Content Type_Jersey 2.0_Jboss6.x - Fatal编程技术网

Http 覆盖头部请求的内容类型

Http 覆盖头部请求的内容类型,http,response,content-type,jersey-2.0,jboss6.x,Http,Response,Content Type,Jersey 2.0,Jboss6.x,我有一个web应用程序,在进行实际的GET调用之前先进行HEAD调用。GET方法生成application/json。当出现错误时,比如(500),头部的内容类型将更改为text/html。对于相同的错误,GET的内容类型仍然是application/json。是否有方法覆盖HEAD中返回的内容类型。这就是我形成反应的方式。这是一个jersery实现 Response.status(errorStatus)entity( some json).build() 曼尼什语 我打赌org.apach

我有一个web应用程序,在进行实际的GET调用之前先进行HEAD调用。GET方法生成application/json。当出现错误时,比如(500),头部的内容类型将更改为text/html。对于相同的错误,GET的内容类型仍然是application/json。是否有方法覆盖HEAD中返回的内容类型。这就是我形成反应的方式。这是一个jersery实现

Response.status(errorStatus)entity( some json).build()
曼尼什语

我打赌org.apache.catalina.valves.ErrorReportValve会压扁你的回答

看看这个类的“report”方法。如果响应为4xx或5xx,并且没有内容(即没有实体-HEAD响应没有实体)(第153行),则。。。

内容类型设置为
text/html
(第283行)。你的回答刚刚被压制,但是。。。

ErrorReportValve不会对已提交的响应执行任何操作(第102行)。

那么,也许可以尝试创建一个servlet过滤器,在ErrorReportValve压扁响应之前提交响应?大概是这样吧?

曼尼什语

我打赌org.apache.catalina.valves.ErrorReportValve会压扁你的回答

看看这个类的“report”方法。如果响应为4xx或5xx,并且没有内容(即没有实体-HEAD响应没有实体)(第153行),则。。。

内容类型设置为
text/html
(第283行)。你的回答刚刚被压制,但是。。。

ErrorReportValve不会对已提交的响应执行任何操作(第102行)。


那么,也许可以尝试创建一个servlet过滤器,在ErrorReportValve压扁响应之前提交响应?也许是这样吧?

谢谢你,丹。这解决了我的问题。我仍然想知道为什么它撤销了283行的回复。好问题。我不确定。我最好的猜测是,在处理程序(servlet)能够向缓冲区写入任何内容(因此没有内容检查)之前,他们可能正在考虑当异常发生时该怎么办。似乎未能检查请求方法(例如HEAD)。谢谢Dan。这解决了我的问题。我仍然想知道为什么它撤销了283行的回复。好问题。我不确定。我最好的猜测是,在处理程序(servlet)能够向缓冲区写入任何内容(因此没有内容检查)之前,他们可能正在考虑当异常发生时该怎么办。似乎未能检查请求方法(例如HEAD)。