Fix POST request

This commit is contained in:
Patrick Niklaus 2016-01-21 19:57:07 +01:00
parent 2a882aa58d
commit c05d23a586

View File

@ -1,6 +1,6 @@
require 'net/http' require 'net/http'
# Converts an array [["param","val1"], ["param","val2"]] into ?param=val1&param=val2 # Converts an array [["param","val1"], ["param","val2"]] into param=val1&param=val2
def params_to_string params def params_to_string params
kv_pairs = params.map { |kv| kv[0].to_s + "=" + kv[1].to_s } kv_pairs = params.map { |kv| kv[0].to_s + "=" + kv[1].to_s }
url = kv_pairs.size > 0 ? kv_pairs.join("&") : "" url = kv_pairs.size > 0 ? kv_pairs.join("&") : ""
@ -9,15 +9,16 @@ end
def send_request base_uri, parameters def send_request base_uri, parameters
Timeout.timeout(OSRM_TIMEOUT) do Timeout.timeout(OSRM_TIMEOUT) do
uri_string = base_uri + "?" + params_to_string(parameters)
uri = URI.parse(uri_string)
@query = uri.to_s
if @http_method.eql? "POST" if @http_method.eql? "POST"
uri = URI.parse base_uri Net::HTTP.start(uri.hostname, uri.port) do |http|
@query = uri.to_s req = Net::HTTP::Post.new(uri.path)
req = Net::HTTP::Post.new('localhost:8000') req.body = params_to_string parameters
req.body = params_to_string parameters response = http.request(req)
response = Net::HTTP.start(uri.hostname, uri.port) do |http| http.request(req) end end
else else
uri = URI.parse(base_uri + "?" + params_to_string(parameters))
@query = uri.to_s
response = Net::HTTP.get_response uri response = Net::HTTP.get_response uri
end end
end end