Rumah > Java > javaTutorial > Bagaimana untuk Menetapkan Masa Tamat Respons HTTP dalam Android Menggunakan Java?

Bagaimana untuk Menetapkan Masa Tamat Respons HTTP dalam Android Menggunakan Java?

Mary-Kate Olsen
Lepaskan: 2024-12-17 11:39:26
asal
251 orang telah melayarinya

How to Set HTTP Response Timeouts in Android Using Java?

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());
            ...
        }
    }
}
Salin selepas log masuk

Apabila pelayan tidak berfungsi untuk ujian, pelaksanaan tersekat pada baris:

HttpResponse response = httpClient.execute(method);
Salin selepas log masuk

Untuk menangani isu ini, tamat masa boleh ditetapkan untuk mengehadkan tempoh menunggu. Dalam contoh di bawah, dua tamat masa ditetapkan:

  1. Tamat Masa Sambungan: Menentukan masa maksimum yang dibenarkan untuk mewujudkan sambungan dengan pelayan jauh. Secara lalai, nilai ini ialah 0 (tiada tamat masa).
  2. Masa Soket: Mentakrifkan masa maksimum yang dibenarkan untuk menerima data daripada pelayan jauh. Nilai lalai juga ialah 0.
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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan