Rumah >pembangunan bahagian belakang >masalah PHP >Mari kita bincangkan tentang kod peralihan tamat masa permintaan PHP

Mari kita bincangkan tentang kod peralihan tamat masa permintaan PHP

PHPz
PHPzasal
2023-03-29 10:13:53751semak imbas

Kod status tamat masa permintaan PHP

Dalam pengaturcaraan PHP, apabila kami menggunakan perkhidmatan web atau API, kami biasanya menggunakan curl atau perpustakaan HTTP lain untuk membuat permintaan. Malangnya, bagaimanapun, kadangkala permintaan API mungkin tamat masa, dan kami perlu mengendalikan kod status tamat masa permintaan. Dalam artikel ini, kita akan membincangkan kod status tamat masa permintaan dan cara mengendalikannya.

Minta kod status tamat masa

Kod status tamat masa permintaan merujuk kepada kod status yang tidak boleh menerima respons daripada pelayan dalam tempoh masa. Kod status ini memberitahu kami bahawa apabila cuba menyambung ke pelayan, pelayan tidak bertindak balas atau pelayan tidak dapat disambungkan. Dalam protokol HTTP, kod status untuk tamat masa permintaan biasanya 504 atau 408. Mari lihat apa maksud kedua-dua kod status ini.

  1. Kod status 504

Kod status 504 menunjukkan tamat masa get laluan. Ini bermakna pelayan web tidak boleh mendapat respons tepat pada masanya daripada pelayan huluan dan telah berputus asa menunggu respons. Ini biasanya berlaku apabila bekerja dengan sejumlah besar data atau skrip jangka panjang (cth., memproses fail besar, pertanyaan pangkalan data, dll.).

  1. 408 kod status

408 kod status menunjukkan bahawa permintaan telah tamat masa. Ini bermakna pelayan tidak menerima permintaan dalam tempoh masa yang diminta. Ini biasanya berlaku apabila sambungan rangkaian tidak stabil, atau apabila beban pelayan tinggi.

Mengendalikan Kod Status Tamat Masa Permintaan

Sekarang kita memahami maksud kod status tamat masa permintaan, di bawah kita akan membincangkan cara mengendalikannya. Terdapat dua cara utama untuk mengendalikan kod status tamat masa permintaan.

  1. Tingkatkan tamat masa

Anda boleh menyelesaikan masalah tamat masa permintaan dengan meningkatkan tamat masa permintaan. Dalam PHP, apabila menggunakan fungsi cURL untuk menghantar permintaan HTTP, anda boleh menggunakan pilihan CURLOPT_TIMEOUT untuk menetapkan tamat masa permintaan. Pilihan ini digunakan untuk menetapkan masa menunggu respons, biasanya dalam beberapa saat. Walau bagaimanapun, jika API anda memerlukan masa respons yang lebih lama, anda boleh menggunakan pilihan CURLOPT_CONNECTTIMEOUT untuk meningkatkan tamat masa sambungan.

Sebagai contoh, di bawah ialah coretan kod yang menggunakan cURL untuk menghantar permintaan HTTP. Dalam contoh ini, saya menetapkan pilihan tamat masa permintaan kepada 60 saat untuk memastikan bahawa cURL mempunyai masa yang mencukupi untuk menunggu respons daripada pelayan.

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'https://example.com/api');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 60);

$response = curl_exec($curl);

if($response === false) {
    echo 'Error: ' . curl_error($curl);
}

curl_close($curl);
  1. Permintaan Tak Segerak

Cara lain untuk mengendalikan tamat masa permintaan ialah menggunakan permintaan tak segerak. Biasanya, menggunakan kaedah menyekat untuk menghantar permintaan API boleh mengakibatkan tamat masa dan ia menghalang kod daripada dilaksanakan. Walau bagaimanapun, dengan permintaan tak segerak, anda boleh mengelakkan masalah ini dengan menghantar permintaan ke proses atau rangkaian lain. Dengan cara ini, kod anda boleh terus menjalankan operasi lain tanpa menunggu jawapan.

Dalam PHP, terdapat perpustakaan yang boleh mengendalikan permintaan tak segerak, seperti ReactPHP dan Guzzle. Di bawah ialah coretan kod yang menggunakan pustaka Guzzle untuk menghantar permintaan tak segerak.

use GuzzleHttp\Client;
use GuzzleHttp\Promise;

$client = new Client();

$promise = $client->requestAsync('GET', 'https://example.com/api');

$promise->then(
    function ($response) {
        echo 'Response: ' . $response->getBody();
    },
    function ($exception) {
        echo 'Error: ' . $exception->getMessage();
    }
);

$promise->wait();

Dalam contoh ini, kami menggunakan pustaka Guzzle untuk menghantar permintaan tak segerak, dan kemudian menggunakan fungsi panggil balik untuk mengendalikan respons atau ralat. Dalam permintaan tak segerak, kami tidak perlu menunggu respons, tetapi boleh terus melaksanakan kod dan memproses respons apabila ia tersedia.

Kesimpulan

Dalam artikel ini, kami mempelajari tentang maksud kod status tamat masa permintaan dan membincangkan cara mengendalikannya. Kami mengetahui bahawa meningkatkan masa tamat atau menggunakan permintaan tak segerak ialah cara utama untuk mengendalikan tamat masa permintaan. Tidak kira kaedah yang digunakan, ia boleh membantu kami mengelakkan masa tamat sambungan dan masalah tamat masa get laluan, dengan itu memastikan penghantaran permintaan API yang lancar.

Atas ialah kandungan terperinci Mari kita bincangkan tentang kod peralihan tamat masa permintaan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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 sebelumnya:Adakah php mempunyai foreach?Artikel seterusnya:Adakah php mempunyai foreach?