You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用HTTParty发送POST请求时,Timestamp整数请求头报错问题

解决HTTParty POST请求中Timestamp头的NoMethodError问题

这个问题我之前也碰到过!根源很简单——HTTParty对请求头的处理有个小细节:它会自动对每个头的值调用strip方法来去除首尾空白,但你传给Timestamp的是个整数类型的时间戳,整数根本没有strip方法,这不就直接抛出错误了嘛。

修复方案

只需要把整数类型的时间戳转换成字符串就行,修改Time.now.to_iTime.now.to_i.to_s,让HTTParty能正常处理这个请求头值。

修正后的完整代码

response = HTTParty.post(
  route,
  body: options[:body].to_json,
  headers: {
    'Timestamp' => Time.now.to_i.to_s,  # 将整数时间戳转为字符串
    'Authorization' => "Bearer #{options[:token]}",
    'Content-Type' => 'application/json'
  }
)

顺便提一句:HTTP协议里的请求头值本质上都是字符串,哪怕API文档说明是整数字段,也得以字符串形式传递,这样HTTParty才能正确处理,同时API端也能正常解析这个字符串为整数。

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

火山引擎 最新活动