hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Berlin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HTTPCLIENT-854) RFE: Provide mechanism to allow request transmission and response reception to be performed independently
Date Mon, 22 Jun 2009 22:02:07 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12722856#action_12722856
] 

Sam Berlin commented on HTTPCLIENT-854:
---------------------------------------

Oleg,

Would you be comfortable with a refactoring of DefaultRequestDirector that was independent
of (but compatible with) this change, so that it could be introduced without duplicating the
code?  I see some benefit in a refactoring the DefaultRequestDirector.execute method for the
sake of simplicity & testability alone.  If that refactoring can enable a subclass to
hook in and perform just a portion of the execute, then all the better.

I'm not sure this particular problem needs (or even wants) any NIO or asynchronous behavior.
 It seems more like a two-stepped blocking solution, which suits itself well to httpclient
(as opposed to httpcore or httpcore-nio).



> RFE: Provide mechanism to allow request transmission and response reception to be performed
independently
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-854
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-854
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpClient
>    Affects Versions: 4.0 Final
>         Environment: All
>            Reporter: Mike Cumings
>            Priority: Minor
>             Fix For: Future
>
>         Attachments: HTTPCLIENT-854_httpclient_2009-06-18_1.patch, HTTPCLIENT-854_httpclient_2009-06-19_1.patch,
HTTPCLIENT-854_httpcore_2009-06-18_1.patch, HTTPCLIENT-854_httpcore_2009-06-19_1.patch
>
>
> The HttpClient API currently provides for the execution of a request via the HttpClient.execute(...)
methods.  These methods all send the request and then block until the response has been received.
 This precludes the user of the API from being able to send the request, perform some additional
work, then come back and block on the request.  This style of processing is very desirable
for implementation of HTTP-based protocols such as Bidirectional-streams Over Synchronous
HTTP (BOSH).   This capability is also closely related to HTTPCLIENT-258, support for HTTP
1.1 pipelining.
> The current code base (4.0) currently utilizes org.apache.http.impl.client.DefaultRequestDirector.execute(...)
to transmit requests.  This method contains a retry loop which blocks on and then examines
the response from the remote server.  When success is detected, it cleans up and returns the
response instance.  Requests are sent using an HttpResponseExecutor instance.  These classes
support the ability to separately doSendRequest()  and doReceiveResponse().
> Please expose the ability to leverage this functionality outwith the retry loop but including
the existing routing and authorization capabilities, where possible.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message