Tôi đang sử dụng lớp HttpURLConnection để thực hiện các yêu cầu http. Mã của tôi trông giống như thế này-HttpURLConnection.getInputStream() chặn
while(true){
try{
connection=(HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setConnectTimeout(2*1000);
InputStream in=connection.getInputStream();
}
catch(SocketTimeOutException e){}
catch(IOException e){}
}
Tôi thực hiện một số xử lý trên dữ liệu khi tôi truy xuất đối tượng InputStream. Vấn đề của tôi là nếu tôi để chương trình chạy đủ lâu, lệnh gọi tới các khối getInputStream và tôi không bao giờ vượt qua được điều đó.
Tôi có thiếu gì đó không? Bất kỳ gợi ý hay trợ giúp nào cũng sẽ được đánh giá cao. Cảm ơn.
Không bao giờ thực hiện loại điều này 'catch (SocketTimeOutException e) {}' trong một vòng lặp 'while (true)'. Nó sẽ làm cho nó rất khó để gỡ lỗi hoặc dừng chương trình của bạn một cách duyên dáng. – artbristol
@artbristol bạn đang cố gắng nói gì ... đó là từ mã sản xuất của chúng tôi :) –
Ngoài việc làm như @artbristol, bạn đã thử nhận xét 'connection.setDoOutput (true)' vì điều này có nghĩa là bạn đang mong đợi bạn gọi 'connection.getOutputStream()' và viết một cái gì đó trong cơ thể Http –