当writer不包含数据时,RESTService返回HTML

时间:2014-02-27 20:54:10

标签: java xpages

我目前正在使用customService bean开发RESservices。我注意到的一件事是,由于某些原因我不使用responsewriter对象但只使用engine.getHttpResponse()。setStatus(404)(例如)设置响应状态。标题已正确设置(404),但仍然生成了一些html。

我已经尝试将视图标记(xpage的)上的呈现属性设置为false,但这似乎不起作用。是否有一些关于如何使用CustomServiceBean而不返回任何数据的文档?

3 个答案:

答案 0 :(得分:2)

设置状态是一种很好的方法,因此API易于处理。但是你想要考虑:

  • 将内容类型设置为具有结果时实际呈现的内容。如果未设置response.contenttype,则默认为HTML
  • 404用于导航/网址。由于您的XPage呈现结果,因此请求找到了有效的URL。根据用户和/或参数,没有结果因此不是4xx类错误,而是5xx。选择其中一个。
  • 在测试时使用wget或curl,因此您可以确定浏览器不会执行HTML

让我们知道它是怎么回事

答案 1 :(得分:1)

我认为返回404响应会导致HTML数据,因为它通常会为您提供错误消息等。 如果您不想使用任何数据进行响应,只需返回一个空的JSON对象 - 因为我假设您在获取数据时返回JSON,对吧?

答案 2 :(得分:1)

不要设置404状态,为这种情况设置为null,像404这样的蚂蚁错误状态意味着为此创建html