Tôi đang thực hiện cuộc gọi REST tới một hệ thống bên ngoài từ Java. Nếu có bất kỳ gián đoạn kết nối nào nếu hệ thống bên ngoài ngoại tuyến, tôi cần một người nghe để phát hiện và thực hiện các hành động tương ứng. Vui lòng cho tôi biết nếu tôi có thể đạt được điều này trong Java. Tốt nhất là trong Java 8.Phát hiện gián đoạn HTTP trong Java
Hiện tại tôi không nhận được bất kỳ ngoại lệ nào nếu tôi gặp phải bất kỳ tình huống nào như vậy. Tôi có mã bên dưới hiện tại
Client client = ClientBuilder.newClient();
WebTarget target = client.target(HOSTNAME);
Invocation.Builder requestBuilder;
requestBuilder = target.path(URL).request(MediaType.APPLICATION_JSON)
.header(HEADER_AUTHORIZATION, AUTH_TOKEN);
Response response = null;
if (HTTP_POST.equalsIgnoreCase(method)) {
try{
response = requestBuilder.post(Entity.entity(message, MediaType.APPLICATION_JSON_TYPE));
}catch(Exception ex){
ex.printStackTrace();
}
} else if (HTTP_GET.equalsIgnoreCase(method)) {
response = requestBuilder.get();
}
String executeMessage = null;
if(response != null){
if (response.getStatus() == 200) {
executeMessage = response.readEntity(String.class);
return new JSONObject(executeMessage);
} else {
executeMessage = response.readEntity(String.class);
final JSONObject status = new JSONObject();
status.put(STATUS_CODE, response.getStatus());
status.put(STATUS_INFO, response.getStatusInfo());
status.put("response", executeMessage);
final JSONObject error = new JSONObject();
error.put(ERROR, status);
return error;
}
}
Bạn sẽ nhận được IOException, bạn sẽ phải nắm bắt, vì vậy hãy đặt bất kỳ mã đặc biệt nào vào đó. –
Một số chi tiết khác về khung công tác bạn đang sử dụng để thực hiện yêu cầu HTTP và đoạn mã của mã gọi như thế nào sẽ giúp bạn nhận được nhiều câu trả lời hữu ích hơn. –
@Michael Peyper - Tôi đã cập nhật mã. Steve Smith - Hiện tại tôi không nhận được bất kỳ ngoại lệ nào, hệ thống chờ phản hồi. –