OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .readTimeout(1, TimeUnit.MINUTES)
                .build();
        String json = JSON.toJSONString(paramDTO);
        RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"),json);
        // 请求对象
        Request request = new Request.Builder()
                .url("http://127.0.0.1:8080/teatapi/")
                .header("AUTHORIZATION", "token")
                .header("Content-Type", "text/event-stream;charset=utf-8")
                .post(body)
                .build();
        try (Response response = client.newCall(request).execute()) {

            InputStream responseBody = response.body().byteStream();
            String line = null;
            InputStreamReader is = new InputStreamReader(responseBody);
            BufferedReader reader = new BufferedReader(is);
            while ((line = reader.readLine()) != null) {
                System.out.println(line.toString());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

第一种方式

        OkHttpClient client = new OkHttpClient.Builder()
                .connectTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .readTimeout(1, TimeUnit.MINUTES)
                .build();

        EventSource.Factory factory = EventSources.createFactory(client);

        String json = JSON.toJSONString(paramDTO);
        RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"),json);
        // 请求对象
        Request request = new Request.Builder()
                .url("http://127.0.0.1:8080/testapi")
                .header("AUTHORIZATION", "token")
                .post(body)
                .build();
        // 自定义监听器

        RealEventSource realEventSource = new RealEventSource(request, new EventSourceListener() {

            @Override
            public void onOpen(EventSource eventSource, Response response) {
                System.out.println("开始");
            }

            @Override
            public void onEvent(EventSource eventSource, String id, String type, String data) {
                System.out.println("接收数据");
                System.out.println(data);
            }

            @Override
            public void onClosed(EventSource eventSource) {
                System.out.println("结束");
            }

            @Override
            public void onFailure(EventSource eventSource, Throwable t, Response response) {
                System.out.println("失败");
            }
        });
        realEventSource.connect(client);

第二种方式

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐