You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails 6中使用HTTParty?POST请求无数据问题求助

解决Rails中HTTParty POST请求服务器收不到数据的问题

嘿,作为过来人,我一眼就看到你代码里的两个小问题——这都是用HTTParty发JSON请求时新手常踩的坑,难怪服务器收不到数据!

问题分析

你用Postman发JSON能成功,但自己的代码不行,核心原因是请求格式和头部设置错了:

  • 第一个坑:你把headers选项嵌套到body哈希里面了!HTTParty的post方法里,headers是和body平级的参数,不是body的一部分。这样服务器根本没收到你设置的Content-Type: application/json头,自然不会按JSON格式解析请求体。
  • 第二个坑:就算头部设置对了,直接传Ruby哈希作为body的话,HTTParty默认会把它转成application/x-www-form-urlencoded格式(也就是表单格式),而不是纯JSON字符串。这和你Postman里发的请求格式完全不一样,服务器当然认不出来。

修正后的代码

把这两个问题改了就好,看下面的代码:

def send_information
  HTTParty.post(
    "https://example.com/api/json.php",
    body: {
      user: 'Nancy Cole',
      item: 'mobile phone',
      content: 'Hurray the server has received your message',
      id: 2
    }.to_json, # 把Ruby哈希转换成标准JSON字符串
    headers: { 'Content-Type' => 'application/json' } # 把headers放到正确的位置
  )
end

额外小技巧

如果之后再遇到类似问题,可以打印请求的详细信息来排查:

response = HTTParty.post(...)
puts response.request.inspect # 查看请求的头部、体内容等细节

这样能直观看到实际发送的请求是不是和Postman里的一致。

内容的提问来源于stack exchange,提问作者Geni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:57:41