У меня есть следующий кодКак избежать запроса Фарадея для кодирования параметров получения?
conn = Faraday.new(:url => 'http://www.mapquestapi.com') do |faraday|
faraday.response :logger # log requests to STDOUT
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
faraday.options.params_encoder = Faraday::FlatParamsEncoder
end
response = conn.get do |req|
req.url '/geocoding/v1/batch'
req.params['key'] = 'xxxxx%7xxxxxxxxx%2xxxx%3xxxx-xxxx'
req.params['location'] = addresses[0]
end
К сожалению ключ парам будет закодирован как показано в журнале таким образом ключ = ххххх% 257xxxxxxxxx% 252xxxx% 253xxxx-хххх, в результате чего, что MapQuest API ответить чтобы с неправильным ключом (из-за кодирования, как я попытался с почтальоном и он работает)
I, [2014-01-22T19:16:17.949640 #93669] INFO -- : get http://www.mapquestapi.com/geocoding/v1/batch?key=xxxxx%257xxxxxxxxx%252xxxx%253xxxx-xxxx&location=1047+East+40th+Avenue%2C+Vancouver%2C+BC+V5W+1M5%2C+Canada
D, [2014-01-22T19:16:17.949778 #93669] DEBUG -- request: User-Agent: "Faraday v0.9.0"
accept-encoding: ""
I, [2014-01-22T19:16:19.038914 #93669] INFO -- Status: 200
D, [2014-01-22T19:16:19.039043 #93669] DEBUG -- response: server: "Apache-Coyote/1.1"
set-cookie: "JSESSIONID=AD0A86636DAAD3324316A454354F; Path=/; HttpOnly"
ключ парам следует отправить без кодирующая %, как я могу избежать этого этого не произошло, я не нашел параметров, чтобы изменить это поведение
Im using Faraday 0.9.0, ruby 2.0. Я знаю, что я могу использовать библиотеку Mapquest, которая опирается на restclient драгоценный камень, но, как я ве провел некоторое время кодирования это было бы неплохо, как заставить его работать с Фарадея
Вы смогли это решить? – tomascharad
извините за супер поздно ответ не уверен, почему я не получил никаких уведомлений. я смог его решить. Я думаю, что ответ Яна правильный –