{"id":10314,"date":"2025-08-18T16:22:50","date_gmt":"2025-08-18T16:22:50","guid":{"rendered":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/?p=10314"},"modified":"2025-08-18T16:22:53","modified_gmt":"2025-08-18T16:22:53","slug":"httpclient-in-java","status":"publish","type":"post","link":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java","title":{"rendered":"HttpClient in Java"},"content":{"rendered":"\n<p>In <strong>Java 11<\/strong>, <code>HttpClient<\/code> was introduced as part of the <code>java.net.http<\/code> package, providing a modern, fully asynchronous, and flexible HTTP client API to replace the older <code>HttpURLConnection<\/code>. It supports <strong>HTTP\/1.1<\/strong>, <strong>HTTP\/2<\/strong>, synchronous and asynchronous requests, and built-in support for handling <strong>JSON<\/strong>, <strong>time-outs<\/strong>, <strong>redirects<\/strong>, and <strong>authentication<\/strong>.<\/p>\n\n\n\n<p>Here\u2019s a detailed overview and examples:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Creating an HttpClient<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import java.net.http.HttpClient;\nimport java.time.Duration;\n\nHttpClient client = HttpClient.newBuilder()\n        .version(HttpClient.Version.HTTP_2)      \/\/ Use HTTP\/2\n        .connectTimeout(Duration.ofSeconds(10))  \/\/ Connection timeout\n        .build();\n<\/textarea><\/pre><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">net<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">HttpClient<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">time<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">Duration<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">HttpClient<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">client<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpClient<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">newBuilder<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">version<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">HttpClient<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Version<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">HTTP_2<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #616E88\">\/\/ Use HTTP\/2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">connectTimeout<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">Duration<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ofSeconds<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\">\/\/ Connection timeout<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">build<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Sending a Synchronous GET Request<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import java.net.URI;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\n\nHttpRequest request = HttpRequest.newBuilder()\n        .uri(URI.create(\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/jsonplaceholder.typicode.com\/posts\/1\"))\n        .GET()\n        .build();\n\ntry {\n    HttpResponse&lt;String> response = client.send(request, HttpResponse.BodyHandlers.ofString());\n    System.out.println(\"Status code: \" + response.statusCode());\n    System.out.println(\"Response body: \" + response.body());\n} catch (Exception e) {\n    e.printStackTrace();\n}\n<\/textarea><\/pre><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">net<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">URI<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">net<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">HttpRequest<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">java<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">net<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">http<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">HttpResponse<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">HttpRequest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpRequest<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">newBuilder<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">uri<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">URI<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">create<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/jsonplaceholder.typicode.com\/posts\/1<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">GET<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">build<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">try<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">HttpResponse<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #ECEFF4\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">client<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">send<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpResponse<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">BodyHandlers<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ofString<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">println<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Status code: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">statusCode<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">println<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Response body: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">body<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">catch<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">Exception<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">printStackTrace<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Sending a POST Request<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>String json = \"\"\"\n    {\n        \"title\": \"foo\",\n        \"body\": \"bar\",\n        \"userId\": 1\n    }\n\"\"\";\n\nHttpRequest request = HttpRequest.newBuilder()\n        .uri(URI.create(\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/jsonplaceholder.typicode.com\/posts\"))\n        .header(\"Content-Type\", \"application\/json\")\n        .POST(HttpRequest.BodyPublishers.ofString(json))\n        .build();\n\ntry {\n    HttpResponse&lt;String> response = client.send(request, HttpResponse.BodyHandlers.ofString());\n    System.out.println(\"Status code: \" + response.statusCode());\n    System.out.println(\"Response body: \" + response.body());\n} catch (Exception e) {\n    e.printStackTrace();\n}\n<\/textarea><\/pre><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">json<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;&quot;&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        &quot;title&quot;: &quot;foo&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        &quot;body&quot;: &quot;bar&quot;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        &quot;userId&quot;: 1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&quot;&quot;&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">HttpRequest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpRequest<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">newBuilder<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">uri<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">URI<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">create<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/jsonplaceholder.typicode.com\/posts<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">header<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Content-Type<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">application\/json<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">POST<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">HttpRequest<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">BodyPublishers<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ofString<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">json<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">build<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">try<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">HttpResponse<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #ECEFF4\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">client<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">send<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpResponse<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">BodyHandlers<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ofString<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">println<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Status code: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">statusCode<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">println<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Response body: <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">body<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">catch<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">Exception<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">printStackTrace<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Asynchronous Request (Non-blocking)<\/strong><\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>HttpRequest request = HttpRequest.newBuilder()\n        .uri(URI.create(\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/jsonplaceholder.typicode.com\/posts\/1\"))\n        .GET()\n        .build();\n\nclient.sendAsync(request, HttpResponse.BodyHandlers.ofString())\n      .thenApply(HttpResponse::body)\n      .thenAccept(System.out::println)\n      .join();  \/\/ Wait for completion\n<\/textarea><\/pre><svg xmlns=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">HttpRequest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">request<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpRequest<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">newBuilder<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">uri<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">URI<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">create<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/jsonplaceholder.typicode.com\/posts\/1<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">GET<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">build<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">client<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sendAsync<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">request<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">HttpResponse<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">BodyHandlers<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ofString<\/span><span style=\"color: #ECEFF4\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">thenApply<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">HttpResponse<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #D8DEE9FF\">body<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">thenAccept<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #D8DEE9FF\">println<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">join<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\">\/\/ Wait for completion<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Common Features<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Timeouts:<\/strong> <code>.timeout(Duration.ofSeconds(5))<\/code><\/li>\n\n\n\n<li><strong>Redirects:<\/strong> <code>.followRedirects(HttpClient.Redirect.ALWAYS)<\/code><\/li>\n\n\n\n<li><strong>HTTP Versions:<\/strong> <code>.version(HttpClient.Version.HTTP_2)<\/code> or HTTP\/1.1<\/li>\n\n\n\n<li><strong>Custom Headers:<\/strong> <code>.header(\"Authorization\", \"Bearer token\")<\/code><\/li>\n\n\n\n<li><strong>Cookies:<\/strong> <code>HttpClient<\/code> can manage cookies via <code>CookieHandler<\/code>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><code>HttpClient<\/code> in Java 11 is a big improvement over <code>HttpURLConnection<\/code>, especially for modern APIs and asynchronous programming.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java 11, HttpClient was introduced as part of the java.net.http package, providing a modern, fully asynchronous, and flexible HTTP client API to replace the older HttpURLConnection. It supports HTTP\/1.1, HTTP\/2, synchronous and asynchronous requests, and built-in support for handling JSON, time-outs, redirects, and authentication. Here\u2019s a detailed overview and examples: 1. Creating an HttpClient [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_analysis_target_kw":"","ocean_post_layout":"right-sidebar","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[172],"tags":[],"class_list":["post-10314","post","type-post","status-publish","format-standard","hentry","category-uncategorized-en","entry","owp-thumbs-layout-horizontal","owp-btn-very-big","owp-tabs-layout-horizontal","has-no-thumbnails","has-product-nav"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HttpClient in Java - Custom Software, Infinite Possibilities.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HttpClient in Java - Custom Software, Infinite Possibilities.\" \/>\n<meta property=\"og:description\" content=\"In Java 11, HttpClient was introduced as part of the java.net.http package, providing a modern, fully asynchronous, and flexible HTTP client API to replace the older HttpURLConnection. It supports HTTP\/1.1, HTTP\/2, synchronous and asynchronous requests, and built-in support for handling JSON, time-outs, redirects, and authentication. Here\u2019s a detailed overview and examples: 1. Creating an HttpClient [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java\" \/>\n<meta property=\"og:site_name\" content=\"Custom Software, Infinite Possibilities.\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-18T16:22:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-18T16:22:53+00:00\" \/>\n<meta name=\"author\" content=\"anis kchaou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"anis kchaou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java\"},\"author\":{\"name\":\"anis kchaou\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#\\\/schema\\\/person\\\/bc01eb392bf5f7248664af5ca7372606\"},\"headline\":\"HttpClient in Java\",\"datePublished\":\"2025-08-18T16:22:50+00:00\",\"dateModified\":\"2025-08-18T16:22:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java\"},\"wordCount\":95,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#organization\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java\",\"url\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java\",\"name\":\"HttpClient in Java - Custom Software, Infinite Possibilities.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#website\"},\"datePublished\":\"2025-08-18T16:22:50+00:00\",\"dateModified\":\"2025-08-18T16:22:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/httpclient-in-java#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/delta-dev-software.fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HttpClient in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#website\",\"url\":\"https:\\\/\\\/delta-dev-software.fr\\\/\",\"name\":\"Delta Dev Software\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/delta-dev-software.fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#organization\",\"name\":\"Delta Dev Software\",\"url\":\"https:\\\/\\\/delta-dev-software.fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/delta-dev-software.fr\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/logo-1.png\",\"contentUrl\":\"https:\\\/\\\/delta-dev-software.fr\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/logo-1.png\",\"width\":200,\"height\":200,\"caption\":\"Delta Dev Software\"},\"image\":{\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/delta-dev-software.fr\\\/#\\\/schema\\\/person\\\/bc01eb392bf5f7248664af5ca7372606\",\"name\":\"anis kchaou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6b8ef8891264bd2e394bc2a14877fd3047dbc21b8cc3858f6bd7d6499ecdc54e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6b8ef8891264bd2e394bc2a14877fd3047dbc21b8cc3858f6bd7d6499ecdc54e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6b8ef8891264bd2e394bc2a14877fd3047dbc21b8cc3858f6bd7d6499ecdc54e?s=96&d=mm&r=g\",\"caption\":\"anis kchaou\"},\"url\":\"https:\\\/\\\/delta-dev-software.fr\\\/author\\\/aniskchaou2022\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HttpClient in Java - Custom Software, Infinite Possibilities.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java","og_locale":"en_US","og_type":"article","og_title":"HttpClient in Java - Custom Software, Infinite Possibilities.","og_description":"In Java 11, HttpClient was introduced as part of the java.net.http package, providing a modern, fully asynchronous, and flexible HTTP client API to replace the older HttpURLConnection. It supports HTTP\/1.1, HTTP\/2, synchronous and asynchronous requests, and built-in support for handling JSON, time-outs, redirects, and authentication. Here\u2019s a detailed overview and examples: 1. Creating an HttpClient [&hellip;]","og_url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java","og_site_name":"Custom Software, Infinite Possibilities.","article_published_time":"2025-08-18T16:22:50+00:00","article_modified_time":"2025-08-18T16:22:53+00:00","author":"anis kchaou","twitter_card":"summary_large_image","twitter_misc":{"Written by":"anis kchaou","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java#article","isPartOf":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java"},"author":{"name":"anis kchaou","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#\/schema\/person\/bc01eb392bf5f7248664af5ca7372606"},"headline":"HttpClient in Java","datePublished":"2025-08-18T16:22:50+00:00","dateModified":"2025-08-18T16:22:53+00:00","mainEntityOfPage":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java"},"wordCount":95,"commentCount":0,"publisher":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#organization"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java","url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java","name":"HttpClient in Java - Custom Software, Infinite Possibilities.","isPartOf":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#website"},"datePublished":"2025-08-18T16:22:50+00:00","dateModified":"2025-08-18T16:22:53+00:00","breadcrumb":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/httpclient-in-java#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/"},{"@type":"ListItem","position":2,"name":"HttpClient in Java"}]},{"@type":"WebSite","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#website","url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/","name":"Delta Dev Software","description":"","publisher":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#organization","name":"Delta Dev Software","url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-content\/uploads\/2021\/04\/logo-1.png","contentUrl":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-content\/uploads\/2021\/04\/logo-1.png","width":200,"height":200,"caption":"Delta Dev Software"},"image":{"@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/#\/schema\/person\/bc01eb392bf5f7248664af5ca7372606","name":"anis kchaou","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/secure.gravatar.com\/avatar\/6b8ef8891264bd2e394bc2a14877fd3047dbc21b8cc3858f6bd7d6499ecdc54e?s=96&d=mm&r=g","url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/secure.gravatar.com\/avatar\/6b8ef8891264bd2e394bc2a14877fd3047dbc21b8cc3858f6bd7d6499ecdc54e?s=96&d=mm&r=g","contentUrl":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/secure.gravatar.com\/avatar\/6b8ef8891264bd2e394bc2a14877fd3047dbc21b8cc3858f6bd7d6499ecdc54e?s=96&d=mm&r=g","caption":"anis kchaou"},"url":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/author\/aniskchaou2022"}]}},"_links":{"self":[{"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/posts\/10314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/comments?post=10314"}],"version-history":[{"count":1,"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/posts\/10314\/revisions"}],"predecessor-version":[{"id":10317,"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/posts\/10314\/revisions\/10317"}],"wp:attachment":[{"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/media?parent=10314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/categories?post=10314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/delta-dev-software.fr\/wp-json\/wp\/v2\/tags?post=10314"}],"curies":[{"name":"wp","href":"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/api.w.org\/{rel}","templated":true}]}}