我正在尝试使用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”。
我在这里想念什么?
经过一番反复尝试后,我意识到我需要更改有效载荷以在请求的主体中发送表单数据,而不是作为查询参数来发送。这要求使用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
}
)