【问题标题】:How can I get the HTTP status code from ServletResponse without using a ServletFilter?如何在不使用 Servlet 过滤器的情况下从 ServletResponse 获取 HTTP 状态代码?
【发布时间】:2012-08-21 16:20:30
【问题描述】:

我将 servlet 的 doPost() 中的 http 状态设置为

if(success)    
{    
  response.setStatus(HttpServletResponse.SC_OK);    
}else{    
  response.sendError(response.SC_BAD_REQUEST, "Message");    
}    

在客户端调用服务器后为:

HttpResponse aHttpResponseL = client.execute(aHttpPostL);    
BufferedReader aBufferedReaderL = new BufferedReader(new InputStreamReader(
                aHttpResponseL.getEntity().getContent()));   

但我总是将 null 作为价值。

提前致谢。

【问题讨论】:

  • 这个问题中ServletFilter的相关性是什么?使用 ServletFilter 时收到响应码了吗?如果有,怎么做?
  • 不,我看到一些使用 servlet 过滤器的帖子,但它太长了(我也没有尝试过)。所以只有

标签: java servlets httpresponse


【解决方案1】:

检查状态行:

HttpResponse aHttpResponseL = client.execute(aHttpPostL);  
int code = aHttpResponseL.getStatusLine().getStatusCode();

【讨论】:

  • 感谢 Kothvandir,它可以工作,但如何获取状态消息?
  • 您是在询问代码和“代码描述文本”之间的对应关系,例如 200 OK、201 CREATED 等吗? HttpStatus 类存储了所有的 http 状态代码,但我认为没有一个类可以提供这些代码的字符串描述。
  • 你很好,但是对于错误 "response.sendError(response.SC_BAD_REQUEST, "Message");"能收到消息吗?
  • 关于如何获取消息的帖子:stackoverflow.com/a/2925207/1297972
猜你喜欢
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 2018-06-01
  • 2010-10-28
  • 2011-11-03
相关资源
最近更新 更多