java sse客户端基于okhttp3.0
【代码】java sse客户端基于okhttp3.0。
·
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);
第二种方式
更多推荐
所有评论(0)