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
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/base/net_fix.rb', line 146 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) res.decode_content = req.decode_content if RUBY_VERSION > '2.0' # 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 |