我需要POST一个API,这需要一个名为"Timestamp"
的请求中的标头,其值必须是一个整数(当前时间从epoch作为整数)。
我尝试使用HTTParty
和Net::HTTP
执行此操作,如下所示:
response = HTTParty.post(route, body: options[:body].to_json,headers: { 'Timestamp' => Time.now.to_i, 'Authorization' => "Bearer #{options[:token]}",'Content-Type' => 'application/json' })
# >> NoMethodError: undefined method `strip' for 1522273989:Integer
它会在标头值上调用strip
,这会引发错误,因为您无法在整数上调用strip
。
有没有人知道如何在请求标头中传递一个整数?
答案 0 :(得分:2)
在整数上调用.to_s
:
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' })
您无法在标头中发送整数 - 它是接收端的服务器,必须从请求中转换明文标头。
标题字段是明文中以冒号分隔的名称 - 值对 字符串格式,由回车符(CR)和换行符(LF)终止 字符序列。
List of HTTP header fields - Wikipedia