Tôi hơi bối rối về cách hết thời gian chờ trong công việc DefaultHttpClient.Timeout trong DefaultHttpClient
Tôi đang sử dụng mã này:
private DefaultHttpClient createHttpClient() {
HttpParams my_httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(my_httpParams, 3000);
HttpConnectionParams.setSoTimeout(my_httpParams, 15000);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ThreadSafeClientConnManager multiThreadedConnectionManager = new ThreadSafeClientConnManager(my_httpParams, registry);
DefaultHttpClient httpclient = new DefaultHttpClient(multiThreadedConnectionManager, my_httpParams);
return httpclient;
}
.
String url = "http://www.example.com";
DefaultHttpClient httpclient = createHttpClient();
HttpGet httpget = new HttpGet(url);
try {
HttpResponse response = httpclient.execute(httpget);
StatusLine statusLine = response.getStatusLine();
mStatusCode = statusLine.getStatusCode();
if (mStatusCode == 200){
content = EntityUtils.toString(response.getEntity());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalStateException e){
e.printStackTrace();
}
Khi 15 giây trôi qua và không phải tất cả dữ liệu đã được nhận, ngoại lệ sẽ được ném, phải không? Nhưng trên phương pháp nào? Tôi nghĩ nó là phương pháp .execute(httpget)
nhưng phương pháp đó chỉ cho tôi biết nó ném ClientProtocolException
và IOException
. Bất cứ ai có thể giúp tôi làm rõ điều này?
OK, tôi hiểu rồi, cảm ơn bạn đã trả lời rõ ràng! – Xander
Bạn được chào đón. –