当我们收到无内容回复为204时,会出现“无内容”消息并显示回复
Response : #<Net::HTTPNoContent 204 No Content readbody=true>
虽然我想要的反应如下:
<response>
<request_id>4ccf18f0-e83d-012e-29f7-042b2b8686e6</request_id>
<status_code>204</status_code>
<message>No Offers were found</message>
</response>
我可以覆盖204错误的默认消息。正在调用以创建响应的方法。
def generate_success_response_without_data(format, request_id, message)
status_code = 204
format_type_method, options_hash, content_type = get_format_method(format)
data = {
"request_id" => request_id,
"status_code" => status_code,
"message" => message
}
data = generate_data_format(format, data)
resp = [status_code, {"Content-Type" => content_type}, data.send(format_type_method, options_hash)]
# Convert rack response to action controller response
generate_active_controller_response_format(resp)
resp
end
编辑: 如http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
中所述204响应绝不能包含消息体,因此总是在头字段后面的第一个空行终止。
我们可以以某种方式破解并显示消息正文
答案 0 :(得分:1)
HTTP 204不是错误响应。当响应成功且内容正文故意为空时,则使用204。
来自:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
服务器已完成请求但不需要返回 entity-body,可能想要返回更新的元信息。该 响应可能包括新的或更新的元信息形式 实体标题,如果存在,应该与...相关联 要求的变体。
如果客户端是用户代理,它不应该更改其文档视图 从导致请求发送的那个。这个回应是 主要是为了允许在没有的情况下进行动作的输入 但是,导致更改用户代理的活动文档视图 任何新的或更新的元信息应该应用于文档 目前在用户代理的活动视图中。
204响应绝不能包含消息体,因此总是如此 由标题字段后的第一个空行终止。
在这种特殊情况下,404看起来更合适。
更多信息:http://benramsey.com/archives/http-status-204-no-content-and-205-reset-content/