[使用HTTParty从Rails POST到VoilaNorbert API

问题描述 投票:0回答:1

我正在尝试使用HTTParty Rails gem将数据发布到标准VoilaNorbert search API endpoint

response = HTTParty.post(
  'https://api.voilanorbert.com/2018-01-08/search/name',
  query: {
    'name': 'Elon Musk', 
    'domain': 'https://www.tesla.com/'
  },
  headers: {
    'Content-Type': 'application/json',
    'Authorization': VOILANORBERT_API_TOKEN
  }
)

但是,当我尝试这个简单的请求时,得到响应:

 => {"name"=>["This field is required."]} 

我的理解是,上面的查询块应该沿着名称字段传递,在这种情况下,名称字段为“ Elon Musk”。

我在这里想念什么?

ruby-on-rails httparty
1个回答
0
投票

经过一番反复尝试后,我意识到我需要更改有效载荷以在请求的主体中发送表单数据,而不是作为查询参数来发送。这要求使用body块对表单字段进行编码,以及使用请求中指示要上传数据的multipart方法。

response = HTTParty.post(
  'https://api.voilanorbert.com/2018-01-08/search/name',
   body: {
     name: 'Elon',
     domain: 'https://www.tesla.com/'  
   },
   multipart: true,
   headers: {
     'Content-Type': 'application/json',
     'Authorization': VOILANORBERT_API_TOKEN
   }
)
© www.soinside.com 2019 - 2024. All rights reserved.