mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-12-08 00:00:58 -05:00
parser: isolating some logic, so that it can be more easily overridden; these have to make sense, obviously
This commit is contained in:
parent
7b98053cf2
commit
36ce3851d1
@ -114,9 +114,18 @@ module HTTPX
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def handle(request)
|
def set_request_headers(request)
|
||||||
catch(:buffer_full) do
|
request.headers["host"] ||= request.authority
|
||||||
request.headers["connection"] ||= "keep-alive"
|
request.headers["connection"] ||= "keep-alive"
|
||||||
|
end
|
||||||
|
|
||||||
|
def headline(request)
|
||||||
|
"#{request.verb.to_s.upcase} #{request.path} HTTP/#{@version.join(".")}"
|
||||||
|
end
|
||||||
|
|
||||||
|
def handle(request)
|
||||||
|
set_request_headers(request)
|
||||||
|
catch(:buffer_full) do
|
||||||
request.transition(:headers)
|
request.transition(:headers)
|
||||||
join_headers(request) if request.state == :headers
|
join_headers(request) if request.state == :headers
|
||||||
request.transition(:body)
|
request.transition(:body)
|
||||||
@ -126,9 +135,8 @@ module HTTPX
|
|||||||
end
|
end
|
||||||
|
|
||||||
def join_headers(request)
|
def join_headers(request)
|
||||||
request.headers["host"] ||= request.authority
|
|
||||||
buffer = +""
|
buffer = +""
|
||||||
buffer << "#{request.verb.to_s.upcase} #{request.path} HTTP/#{@version.join(".")}" << CRLF
|
buffer << headline(request) << CRLF
|
||||||
log { "<- HEADLINE: #{buffer.chomp.inspect}" }
|
log { "<- HEADLINE: #{buffer.chomp.inspect}" }
|
||||||
@buffer << buffer
|
@buffer << buffer
|
||||||
buffer.clear
|
buffer.clear
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user