Pelanggan http: tamat masa lebih cepat apabila tiada rangkaian

WBOY
Lepaskan: 2024-02-11 12:09:09
ke hadapan
750 orang telah melayarinya

Pelanggan http: tamat masa lebih cepat apabila tiada rangkaian

Editor PHP Xinyi hari ini memperkenalkan kepada anda alat yang dipanggil "http client: lebih cepat tamat masa apabila tiada rangkaian". Dalam persekitaran yang tidak stabil atau bukan rangkaian, tamat masa yang lama boleh mengakibatkan pengalaman pengguna yang lemah. Alat klien http ini boleh membantu menyelesaikan masalah ini Ia mengoptimumkan mekanisme tamat masa untuk membuat tamat masa lebih cepat apabila tiada rangkaian, sekali gus meningkatkan kelajuan tindak balas aplikasi dan pengalaman pengguna. Mari kita lihat fungsi khusus dan penggunaan alat ini!

Kandungan soalan

Apabila membuat permintaan http get in go, walaupun tiada sambungan rangkaian, ia akan menunggu tamat masa penuh sebelum mengembalikan ralat.

Saya rasa secara dalaman ia tahu ia gagal dengan cepat; Saya mahu ralat itu disebarkan secepat mungkin daripada menunggu tamat masa. Saya mahu ia mencuba selama 20 saat semasa rangkaian ada tetapi perlahan. Bagaimanakah saya boleh menyediakan pelanggan dengan tingkah laku ini?

Lihat kod masalah:

var client = &http.Client{
    Timeout: time.Second * 20,
}

response, err := client.Get(url)
Salin selepas log masuk

Jika ia penting, saya menggunakan gomobile dan ia berjalan pada emulator ios.

Penyelesaian

Jawapan di sini sangat mudah: secara dalaman golang boleh dan memang tahu apabila tiada rangkaian, dan menyebarkan kegagalan dengan segera tanpa menunggu tamat masa 20 saat. Tiada apa-apa dihantar melalui rangkaian dan tiada menunggu. Semuanya nampaknya berfungsi dengan baik dalam Go dan tiada perubahan pada kod sampel diperlukan.

Isu ini masih berulang, tetapi hanya dalam simulator iOS. Ini nampaknya merupakan isu khusus tentang cara simulator iOS memetakan sambungan ke sistem pengendalian hos. Tidak pasti sama ada ini isu lama atau isu sekali sahaja dengan gandingan MacOS/emulator saya. Pada hos MacOS dan peranti iOS sebenar ia berfungsi dengan baik, apabila tiada antara muka rangkaian ia tamat serta-merta.

Tiada permintaan tambahan diperlukan kerana ini hanyalah satu lagi laluan ke kesimpulan yang sama, yang meningkatkan kemungkinan kegagalan lain. Mungkin membantu membezakan masalah rangkaian daripada masalah dengan perkhidmatan tertentu, atau mendapatkan penunjuk status rangkaian sebenar yang lebih pantas (selepas antara muka rangkaian yang disambungkan wujud).

Atas ialah kandungan terperinci Pelanggan http: tamat masa lebih cepat apabila tiada rangkaian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan