要查找传入的内容类型,文档说:
request.headers["Content-Type"] # => "text/plain"
但是通过反复试验,我发现那并不起作用,但是这个方法可以:
request.headers["CONTENT_TYPE"]=='application/json'
那么最稳健+可移植的方法是什么?
要查找传入的内容类型,文档说:
request.headers["Content-Type"] # => "text/plain"
request.headers["CONTENT_TYPE"]=='application/json'
那么最稳健+可移植的方法是什么?
request.format
和request.content_type
来读取这些头部字段。
编辑:我找到了一些更多的关于这个问题的信息,这可能有所帮助:https://dev59.com/f0nSa4cB1Zd3GeqPR-Nq#1595453
你不需要解析content_type字符串,Rails已经为你做了这个工作。只需要检查:
request.format.symbol == :json
另一种写法:
request.format.json?
不需要调用 #symbol,因为 equals 被重载了:
request.format == :json
对于我来说检查传入请求是否为json的最佳方法是:
if request.content_type =~ /json/
如果请求格式为'application/json'
请求.format或请求头['Accept']是客户端通过API(服务或服务器)期望请求响应的格式。
请求.content_type或请求头['Content-Type']是API(服务或服务器)从请求中期望的数据格式。