Есть простая с виду задача. Отправить POST
запрос… в Airborne.
На Unirest
это делается просто.
Запрос
# encoding: utf-8
require 'unirest'
describe :unirest do
it :post do
response = Unirest.post 'http://httpbin.org/post', parameters: {foo: 42}
puts response.body
end
end
Ответ
{
"args":{
},
"data":"",
"files":{
},
"form":{
"foo":"42"
},
"headers":{
"Accept":"*/*",
"Accept-Encoding":"gzip, deflate",
"Accept-Language":"ru",
"Content-Length":"6",
"Content-Type":"application/x-www-form-urlencoded; charset=utf-8",
"Host":"httpbin.org",
"User-Agent":"Do%20Http/1.8.6 CFNetwork/760.5.1 Darwin/15.5.0 (x86_64)"
},
"json":null,
"origin":"178.76.226.8",
"url":"http://httpbin.org/post"
}
А вот через Airborne
не получается.
Запрос
# encoding: utf-8
require 'airborne'
Airborne.configure { |config| config.base_url = 'http://httpbin.org' }
describe :airborne do
it :post do
post '/post', {foo: 42}
puts response.body
end
end
Ответ
{
"args": {},
"data": "{\"foo\":42}",
"files": {},
"form": {},
"headers": {
"Accept": "*/*; q=0.5, application/xml",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "10",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "Ruby"
},
"json": {
"foo": 42
},
"origin": "178.76.226.8",
"url": "http://httpbin.org/post"
}
Параметры попали в data
, а нужно, чтобы попали в form
, как в первом примере.
Куда копать?