【发布时间】:2011-12-21 02:40:05
【问题描述】:
当我们收到 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 响应不得包含消息正文,因此始终以标头字段后的第一个空行终止。
我们能否以某种方式破解并显示消息正文
【问题讨论】:
-
我不确定黑客是否会有所帮助,大多数客户在收到 204 响应时不会期望任何消息正文,他们会忽略它(尽管我不确定)。
-
@Ernest ..yaa 我同意你的观点,但就我而言,他们期望的是,这就是让我在这里的原因......
标签: ruby xml json http http-status-code-404