Rails 服务器如何强行指定一次请求头的 Content-Type 为 application/json

ad583255925 · 2018年09月04日 · 最后由 bestony 回复于 2018年09月07日 · 3424 次阅读

我们是一个 api 服务器,客户请求我们的时候,Content-Type 是 text/plain,请求体却是 json 格式的,让他们改,他们意思是改起来很困难😂 ,所以我们现在得自己想办法改了,结果发现这还真不是那么好改的 (加个 Rack 中间件?),至少会很别扭,你们怎么看

最粗暴的 在 nginx 代理转发的时候改

另外给路由指定 format: :json 能应对你们的情况么

你为了这个客户改了,以后对接其他客户或者三方请求,到时不就给自己找麻烦么 如果 api 用的是 grape,我倒是改过某个 api 请求接收 xml 的,在某个 api 方法上面声明如下:

format :xml
content_type :xml, "text/xml"

@ad583255925 请告诉我 对方是不是 java

IChou 回复

感觉像是比较传统的企业,估计就是 Java

不改就给他们返回 bad request

这是对方在试探你是不是个好忽悠的傻子。

8 楼 已删除

拿别人的错误惩罚自己。

2 楼说得对,不改。这问题,不用商量,你甩给它一份详尽的 API 文档就行,是搞计算机的,就能玩明白,玩不明白就回头重学《计算机网络》

楼上有人 似乎 有点儿 鄙视 Java 啊,说实话在 Java 里改这个玩意儿易如翻掌。 退一步讲,就算是满足你这样的需求,如果你是一个 Java 程序员,也是易如翻掌。 再退一步,我认为 只要不是只会用框架的选手,改这个都是易如翻掌。

结论:你俩一定有一个人 被 框架 或者 库 蒙蔽了双眼

Content-Type 在任何一个 HTTP 库里都是一个可配置的项目,绝对是他们在忽悠你

需要 登录 后方可回复, 如果你还没有账号请 注册新账号