[
https://issues.apache.org/jira/browse/HTTPCLIENT-1860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Kalnichevski updated HTTPCLIENT-1860:
------------------------------------------
Labels: volunteers-wanted (was: )
Priority: Minor (was: Major)
Fix Version/s: Future
Artem,
If you feel strongly about it please feel free to raise a PR with proposed
changes against 4.6.x or master.
Oleg
> Simplify pre-status-line garbage rejection config
> -------------------------------------------------
>
> Key: HTTPCLIENT-1860
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1860
> Project: HttpComponents HttpClient
> Issue Type: Improvement
> Reporter: Artem Nakonechnyy
> Priority: Minor
> Labels: volunteers-wanted
> Fix For: Future
>
> Attachments: LeadingGarbageLimiter.java
>
>
> I'm building HttpClient via HttpClientBuilder, version is
> httpclient-4.5.3.jar.
> By default there is no limit on the amount of garbage before status line (see
> DefaultHttpResponseParser#reject). I'd like to set one: no more than X lines.
> The documentation tells I'm to provide custom DefaultHttpResponseParser. So
> far so good: I'm just to override one method. But to plug my
> DefaultHttpResponseParser in I have to do a lot of things. I have to
> instantiate/configure/provide (hereinafter "deal with") a handful of other
> objects. Specifically:
> - I have to implement my HttpMessageParserFactory that returns my
> DefaultHttpResponseParser, for that I also have to provide LineParser and
> HttpResponseFactory.
> - then I create ManagedHttpClientConnectionFactory that returns my
> HttpMessageParserFactory
> - then I create PoolingHttpClientConnectionManager where I put
> ManagedHttpClientConnectionFactory. And for that I also have to deal with
> Registry<ConnectionSocketFactory>, PublicSuffixMatcher, HostnameVerifier,
> SSLConnectionSocketFactory, SchemePortResolver, DnsResolver; plus timeToLive
> config property
> - also I have not to forget to set the same publicSuffixMatcher to
> HttpClientBuilder, as it's used not only for ConnectionManager configuration
> The full required code is attached (LeadingGarbageLimiter.java).
> Not only that's hard, but having to deal with so much of stuff my code
> becomes more fragile to potential API changes.
> As an API client I'd very much appreciate some single-line config for such
> simple tweak as the limit we're talking about.
> I'd propose to add {{int maxGarbageBeforeStatusLine}} to MessageConstraints,
> it naturally fits there along to the existing {{maxLineLength}} and
> {{maxHeaderCount}} settings.
> And then use the new setting in DefaultHttpResponseParser.
> Then all a client would have to do is
> {{HttpClientBuilder.create().setMaxGarbageBeforeStatusLine(X)}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]