Feature-Request: HttpResponse.BodyHandlers.ofReader or alternatively convenience function

Klaus Malorny Klaus.Malorny at knipp.de
Thu Nov 5 08:37:34 UTC 2020



Hi,

while the new HTTP client provides means to read text files as a single 
string or as a stream of lines, it actually does not provide any way to 
read the text via the Reader class. For many text types, the character 
encoding is not fixed by the format but may vary. Thus one cannot easily 
wrap the input stream of HttpResponse.BodyHandlers.ofInputStream into a 
Reader.

Usually, the character encoding is contained in the content-type header 
field, but it is not easily extractable if done correctly with 
whitespace and quote handling. I have seen in the source code, that the 
implementation does have a method to retrieve the encoding, but this is 
unfortunately deeply buried and not exposed in the user API.

So I would like to suggest to add a HttpResponse.BodyHandler.ofReader 
method to the API, which takes any charset parameter in the content-type 
header into account, like the ofString and ofLines methods. 
Alternatively, convenience methods in HttpHeaders to read the character 
set (and perhaps the MIME type as well) or a helper class in java.net 
could be provided. I know that there are quite a few third party 
implementations, even in the now detached J2EE framework (activation and 
mail), but I am regarding this as essential enough to be included in the 
base Java API or at least in the java.net.http module.

Thanks for your attention,

regards,

Klaus


More information about the net-dev mailing list