Tôi hiện đang sử dụng HttpClient 4 để thực hiện một yêu cầu POST đến một máy chủ từ xa như thế này:Đóng HttpClient kết nối trước khi timout đạt
HttpResponse response = httpClient.execute(request);
InputStream is = response.getEntity().getContent();
Khi máy chủ là không thể truy cập nó cần một lượng tự cấu hình của thời gian trước khi kết nối thực sự hết giờ. Trong quá trình periode đó, hàm execute() là một cuộc gọi chặn.
Điều tôi đang tìm kiếm là cách hủy lệnh execute() trước thời gian chờ tự nhiên sao cho luồng của tôi chạy lệnh execute() không bị chặn nữa và sẽ kết thúc một cách duyên dáng.
Tôi đã thử
request.abort();
và
httpClient.getConnectionManager().shutdown();
Nhưng cả hai cuộc gọi không làm gián đoạn thực hiện(). Có cách nào khác để hủy nỗ lực kết nối liên tục không?
Tôi đang tìm kiếm một cách để ngăn chặn chặn thực thi() không phải chờ đợi lâu hơn nữa. – Moritz
Tương lai impl sẽ "chặn" nhưng chuỗi gọi có thể chờ đợi một số đo chính xác của msecs và sau đó "hết giờ" và tiếp tục theo cách vui vẻ. – alphazero
Tôi không muốn đợi một khoảng thời gian chính xác mà tôi muốn dừng việc thực hiện() chặn luồng hiện tại. – Moritz