hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bill Speirs <bill.spe...@gmail.com>
Subject Re: HttpParams appear to be static/global
Date Thu, 25 Aug 2011 19:14:14 GMT
What would be best, for my proxy, would be if I could have a thread
(or pool of threads) waiting on read/write events from *either* the
server socket(s) or the client socket(s). I do not believe that is
possible though... does anyone know how to do that sort of thing?
Using an ExecutorCompletionService was the only way I knew to
accomplish this, but it required two pools of threads.

Bill-

On Wed, Aug 24, 2011 at 1:51 PM, Bill Speirs <bill.speirs@gmail.com> wrote:
> That is exactly what is happening... the request that is passed to the
> NHttpRequestHandler.handle() method has the HTTP params set with the
> characters set = UTF-8. Good catch and makes sense as I basically pass
> this request on to the client to execute.
>
> I need to look into the async client and see how it would fit into my
> design. I started with sync for both client & server, and quickly
> out-grew the server side of things. I keep my
> NHttpRequestHandler.handle() method async by wrapping the request in a
> continuation and placing it on a ExecutorCompletionService.
>
> Bill-
>
> On Wed, Aug 24, 2011 at 10:39 AM, Oleg Kalnichevski <olegk@apache.org> wrote:
>> On Wed, 2011-08-24 at 10:28 -0400, Bill Speirs wrote:
>>> I'm working on a proxy server using the 4.2-alpha1 httpcore and 4.1.2
>>> httpclient. In the server portion of my code I setup
>>> SyncBasicHttpParams as follows:
>>>
>>>
>>>         HttpParams params = new SyncBasicHttpParams();
>>>
>>>         params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 0)
>>>               .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE,
>>> 8 * 1024)
>>>               .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,
>>> false)
>>>               .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
>>>               .setParameter(CoreProtocolPNames.ORIGIN_SERVER, "FactSet
>>> Lima Proxy")
>>>               .setParameter(CoreProtocolPNames.PROTOCOL_VERSION,
>>> HttpVersion.HTTP_1_1.toString())
>>>               .setParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET,
>>> HTTP.UTF_8);
>>>
>>> I then use them to create an AsyncNHttpServiceHandler and
>>> DefaultServerIOEventDispatch.
>>>
>>> In another portion of code I create a new SyncBasicHttpParams object
>>> and use it to configure my client:
>>>               final HttpParams params = new SyncBasicHttpParams();
>>>
>>>               params.setBooleanParameter(ClientPNames.HANDLE_REDIRECTS,
handleRedirects);
>>>               params.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS,
false);
>>>               params.setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.IGNORE_COOKIES);
>>>
>>>               HttpConnectionParams.setSoTimeout(params, maxTimeout);
>>>               HttpConnectionParams.setConnectionTimeout(params, maxTimeout);
>>>
>>>               this.client = new DefaultHttpClient(this.connManager, params);
>>>
>>> However, for some reason the HTTP_ELEMENT_CHARSET parameter is
>>> "bleeding" over from my server into my client, forcing my client
>>> requests to be in UTF-8 as well.
>>>
>>> Why is this happening? Are the settings for SyncBasicHttpParams global somehow?
>>>
>>
>> No should be no global settings anywhere in HttpCore or HttpClient.
>> Please note, though, that parameters set on the HTTP request level will
>> always take precedence over parameters set on the HTTP client level. I
>> suspect that parameters of individual messages received by the async
>> listener inherit its settings.
>>
>> By the way, since you are using a non-blocking listener for incoming
>> connections, would not HttpAsyncClient be a better match for handling
>> outgoing connections than HttpClient?
>>
>> Cheers
>>
>> Oleg
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> For additional commands, e-mail: dev-help@hc.apache.org
>>
>>
>

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


Mime
View raw message