230: def build_request(out, method, uri, req)
231: ops = @options.merge(req)
232: query = ops[:query]
233:
234:
235: head = req[:head] || {}
236: head = ops[:head].merge(head) if ops[:head]
237:
238:
239: head[REQ_HOST] = encode_host(@host,@port)
240: head[REQ_CONTENT_LENGTH] = ops[:body] ? ops[:body].length : 0
241:
242:
243: out.write(HTTP_REQUEST_HEADER % [method, encode_query(uri,query)])
244: out.write(encode_headers(head))
245: out.write(encode_cookies(@cookies.merge(req[:cookies] || {})))
246: out.write("\r\n")
247: ops[:body] || ""
248: end