@@ -478,7 +478,6 @@ class HTTP::Client
478
478
# response.body # => "..."
479
479
# ```
480
480
def exec (request : HTTP ::Request ) : HTTP ::Client ::Response
481
- execute_callbacks(request)
482
481
exec_internal(request)
483
482
end
484
483
@@ -496,9 +495,7 @@ class HTTP::Client
496
495
end
497
496
498
497
private def exec_internal_single (request )
499
- decompress = set_defaults request
500
- request.to_io(socket)
501
- socket.flush
498
+ decompress = send_request(request)
502
499
HTTP ::Client ::Response .from_io?(socket, ignore_body: request.ignore_body?, decompress: decompress)
503
500
end
504
501
@@ -517,7 +514,6 @@ class HTTP::Client
517
514
# end
518
515
# ```
519
516
def exec (request : HTTP ::Request , & block)
520
- execute_callbacks(request)
521
517
exec_internal(request) do |response |
522
518
yield response
523
519
end
@@ -544,9 +540,7 @@ class HTTP::Client
544
540
end
545
541
546
542
private def exec_internal_single (request )
547
- decompress = set_defaults request
548
- request.to_io(socket)
549
- socket.flush
543
+ decompress = send_request(request)
550
544
HTTP ::Client ::Response .from_io?(socket, ignore_body: request.ignore_body?, decompress: decompress) do |response |
551
545
yield response
552
546
end
@@ -559,6 +553,14 @@ class HTTP::Client
559
553
value
560
554
end
561
555
556
+ private def send_request (request )
557
+ decompress = set_defaults request
558
+ run_before_request_callbacks(request)
559
+ request.to_io(socket)
560
+ socket.flush
561
+ decompress
562
+ end
563
+
562
564
private def set_defaults (request )
563
565
request.headers[" User-Agent" ] ||= " Crystal"
564
566
{% if flag?(:without_zlib ) % }
@@ -573,6 +575,10 @@ class HTTP::Client
573
575
{% end % }
574
576
end
575
577
578
+ private def run_before_request_callbacks (request )
579
+ @before_request .try & .each & .call(request)
580
+ end
581
+
576
582
# Executes a request.
577
583
# The response will have its body as a `String`, accessed via `HTTP::Client::Response#body`.
578
584
#
@@ -641,10 +647,6 @@ class HTTP::Client
641
647
end
642
648
end
643
649
644
- private def execute_callbacks (request )
645
- @before_request .try & .each & .call(request)
646
- end
647
-
648
650
private def socket
649
651
socket = @socket
650
652
return socket if socket
0 commit comments