Module: Handsoap::Http::Httpclient

Defined in:
lib/handsoap/http.rb

Overview

driver for httpclient

Class Method Summary collapse

Class Method Details

.load!Object



134
135
136
# File 'lib/handsoap/http.rb', line 134

def self.load!
  require 'httpclient'
end

.send_http_request(request) ⇒ Object



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/handsoap/http.rb', line 137

def self.send_http_request(request)
  self.load!
  http_client = HTTPClient.new
  # pack headers
  headers = request.headers.inject([]) do |arr, (k,v)|
    arr + v.map {|x| [k,x] }
  end
  response = http_client.request(request.http_method, request.url, nil, request.body, headers)
  response_headers = response.header.all.inject({}) do |h, (k, v)|
    k.downcase!
    if h[k].nil?
      h[k] = [v]
    else
      h[k] << v
    end
    h
  end
  Handsoap::Http.parse_http_part(response_headers, response.content, response.status, response.contenttype)
end