Menetapkan Tamat Masa Respons HTTP dalam Android Menggunakan Java
Keupayaan untuk menyemak status sambungan pelayan jauh adalah penting dalam banyak aplikasi Android. Walau bagaimanapun, tamat masa sambungan lanjutan boleh menyebabkan kelewatan yang ketara. Artikel ini meneroka cara untuk menetapkan tamat masa respons HTTP untuk mengelakkan menunggu yang tidak perlu.
Pertimbangkan coretan kod berikut untuk menyemak status sambungan:
private void checkConnectionStatus() { HttpClient httpClient = new DefaultHttpClient(); try { String url = "http://xxx.xxx.xxx.xxx:8000/GaitLink/" + strSessionString + "/ConnectionStatus"; Log.d("phobos", "performing get " + url); HttpGet method = new HttpGet(new URI(url)); HttpResponse response = httpClient.execute(method); if (response != null) { String result = getResponse(response.getEntity()); ... } } }
Apabila pelayan tidak berfungsi untuk ujian, pelaksanaan tersekat pada baris:
HttpResponse response = httpClient.execute(method);
Untuk menangani isu ini, tamat masa boleh ditetapkan untuk mengehadkan tempoh menunggu. Dalam contoh di bawah, dua tamat masa ditetapkan:
HttpGet httpGet = new HttpGet(url); HttpParams httpParameters = new BasicHttpParams(); // Set the connection timeout in milliseconds until a connection is established. int timeoutConnection = 3000; HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); // Set the default socket timeout (SO_TIMEOUT) // in milliseconds which is the timeout for waiting for data. int timeoutSocket = 5000; HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); HttpResponse response = httpClient.execute(httpGet);
Apabila kod ini dilaksanakan, pengecualian sambungan akan dilemparkan selepas 3 saat jika sambungan tidak dapat diwujudkan dan pengecualian soket akan dinaikkan selepas 5 saat jika tiada data diterima daripada pelayan.
Sebagai alternatif, jika anda mempunyai tika HTTPClient sedia ada (cth., DefaultHttpClient atau AndroidHttpClient), anda boleh menggunakan fungsi setParams() untuk menetapkan parameter tamat masanya:
httpClient.setParams(httpParameters);
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Masa Tamat Respons HTTP dalam Android Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!