Class: Net::HTTP
Overview
– Net::HTTP –
Instance Method Summary collapse
-
#request(req, body = nil, &block) ⇒ Object
:yield:
response
.
Instance Method Details
#request(req, body = nil, &block) ⇒ Object
:yield: response
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/net_fix.rb', line 127 def request(req, body = nil, &block) # :yield: +response+ unless started? start { req['connection'] ||= 'close' return request(req, body, &block) } end if proxy_user() unless use_ssl? req.proxy_basic_auth proxy_user(), proxy_pass() end end # set body req.set_body_internal body begin_transport req # if we expect 100-continue then send a header first send_only = ((req.is_a?(Post)||req.is_a?(Put)) && (req['expect']=='100-continue')) ? :header : nil req.exec @socket, @curr_http_version, edit_path(req.path), send_only begin res = HTTPResponse.read_new(@socket) # if we expected 100-continue then send a body if res.is_a?(HTTPContinue) && send_only && req['content-length'].to_i > 0 req.exec @socket, @curr_http_version, edit_path(req.path), :body end end while res.kind_of?(HTTPContinue) res.reading_body(@socket, req.response_body_permitted?) { yield res if block_given? } end_transport req, res res end |