RFR: 8331195: Improve com.sun.net.httpserver.HttpExchange usability [v3]
Mark Sheppard
msheppar at openjdk.org
Wed May 1 15:12:56 UTC 2024
On Fri, 26 Apr 2024 15:37:13 GMT, robert engels <duke at openjdk.org> wrote:
>> improve the HttpExchange api with documented constants and convenience methods to avoid common bugs
>
> robert engels has updated the pull request incrementally with one additional commit since the last revision:
>
> Update src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java
>
> Co-authored-by: Michael McMahon <70538289+Michael-Mc-Mahon at users.noreply.github.com>
> > sendResponseHeaderChunked The description implies that this method is sending a chunked response, but the method is not doing that. ...
>
> I don't think it is implying that. The methods:
>
> ```java
> OutputStream sendResponseHeadersChunked(int code);
> OutputStream sendResponseHeadersFixed(int code,long length);
> ```
>
> only inform the server of the response intent. The code must write to and close the provided OutputStream.
>
> maybe
>
> ```java
> OutputStream sendResponseHeadersForChunked(int code);
> OutputStream sendResponseHeadersForFixed(int code,long length);
> ```
>
> might be better? Not a huge fan of extras words without a lot of meaning.
>
> The methods
>
> ```java
> void sendResponseNoContent(int code);
> void sendResponse(int code,byte[] data);
> ```
>
> both close the exchange. No further writes are permitted. The "response" is fully sent after.
your java doc states for the chunked response method
* Convenience method to send a chunked response. The caller must write the response
* body to the returned output stream and then close it.
. . .
public final OutputStream sendResponseHeadersChunked(int code) throws IOException {
It is not sending a chunked response, nor is it setting the Transfer-Encoding header to chunked for a chunked response
For public final void sendResponseHeaders(int code,byte[] data) throws IOException
the description is
/**
* convenience method to send a fixed length response. the output stream is automatically closed and no
* further writes are permitted.
So it is not just sending response headers it is sending a fixed length response body also
the names don't reflect the semantics of the operation described in the methods' javadoc
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18955#issuecomment-2088608764
More information about the net-dev
mailing list