Java 使用 HttpClient 接收 Server-Sent Events (SSE) 流数据
使用 Java HttpClient 接收 Server-Sent Events (SSE) 流数据
本教程介绍如何使用 Java 11 中的 java.net.http.HttpClient 接收 Server-Sent Events (SSE) 返回的流数据。
步骤:
-
创建 HttpClient 对象:
HttpClient client = HttpClient.newHttpClient(); -
创建 HttpRequest 对象,指定 SSE 的 URL 和请求方法为 GET:
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://example.com/sse")) .GET() .build(); -
使用 HttpClient 发送请求并异步获取响应:
CompletableFuture<HttpResponse<InputStream>> responseFuture = client.sendAsync(request, BodyHandlers.ofInputStream()); -
处理响应数据:
responseFuture.thenAccept(response -> { try (BufferedReader reader = new BufferedReader(new InputStreamReader(response.body()))) { String line; while ((line = reader.readLine()) != null) { // 处理每一行数据 System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } });
代码解释:
- 使用
BufferedReader逐行读取响应体的数据。 - 可以根据实际需求对读取到的数据进行处理。
- 使用
try-catch块处理可能出现的IOException异常。
注意:
- 上述代码使用了 Java 11 中引入的新的 HttpClient API。
- 如果你使用的是较早版本的 Java,可以考虑使用第三方库如 Apache HttpClient 来实现相同的功能。
原文地址: http://www.cveoy.top/t/topic/fUh 著作权归作者所有。请勿转载和采集!