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