[ https://issues.apache.org/jira/browse/HTTPCLIENT-2245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631688#comment-17631688 ]
Julian Reschke commented on HTTPCLIENT-2245: -------------------------------------------- > Is this valid HTTP2 request? No content-length and no tranfer-encoding. Yes. > I agree with Michael Osipov that Apache HC should set "Content-Length" for > better performance. Why would the performance be better? > Content-Length is missing for HTTP/2 > ------------------------------------ > > Key: HTTPCLIENT-2245 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2245 > Project: HttpComponents HttpClient > Issue Type: Improvement > Components: HttpClient (async) > Affects Versions: 5.1.3, 5.2-beta1 > Environment: macOS, JDK 17 > openjdk version "17" 2021-09-14 > OpenJDK Runtime Environment Temurin-17+35 (build 17+35) > OpenJDK 64-Bit Server VM Temurin-17+35 (build 17+35, mixed mode, sharing) > Reporter: Yubao Liu > Priority: Major > > {code:java} > import org.apache.hc.client5.http.async.methods.SimpleHttpRequest; > import org.apache.hc.client5.http.async.methods.SimpleHttpResponse; > import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder; > import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient; > import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder; > import org.apache.hc.core5.http.ContentType; > import org.apache.hc.core5.http2.HttpVersionPolicy; > public class A { > public static void main(String[] args) throws Exception { > CloseableHttpAsyncClient httpClient = > HttpAsyncClientBuilder.create().useSystemProperties() > .setVersionPolicy(HttpVersionPolicy.FORCE_HTTP_2) > .build(); > httpClient.start(); > SimpleHttpRequest request = > SimpleRequestBuilder.post("https://httpbin.org/anything") > .setBody("{\"msg\": \"hello\"}".getBytes(), > ContentType.APPLICATION_JSON) > .build(); > SimpleHttpResponse response = httpClient.execute(request, null).get(); > System.out.println(response.getBodyText()); > } > }{code} > According to the response, HttpClient doesn't set content-length > automatically: > {code:java} > { > "args": {}, > "data": "{\"msg\": \"hello\"}", > "files": {}, > "form": {}, > "headers": { > "Content-Type": "application/json; charset=UTF-8", > "Host": "httpbin.org", > "Transfer-Encoding": "chunked", > "User-Agent": "Apache-HttpAsyncClient/5.2-beta1 (Java/17)", > "X-Amzn-Trace-Id": "Root=1-636cd35b-506ee990624aebd74fce87b9" > }, > "json": { > "msg": "hello" > }, > "method": "POST", > "origin": "114.246.97.66", > "url": "https://httpbin.org/anything" > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org