HTTPリクエストにPHPを使用する場合、 Curlは開発者がリクエストを送信して応答を得るのに役立つ非常に一般的なツールです。 Curlを使用してリクエストを送信して応答を処理する場合、問題に遭遇する可能性があります。Curl_Close ()を呼び出してCurlセッションを閉じると、どのように要求されたHTTPステータスコードを取得できますか?
PHPでは、 curl_close()がCurlセッションを閉じるために使用されます。これは、関数が現在のセッションに関連するすべてのリソースを解放することを意味します。通常、 curl_close()を呼び出した後、すべてのセッション情報が破壊されるため、要求されたHTTPステータスコードを直接取得することはできません。ただし、セッションを閉じる前または後にステータスコードを取得する方法はまだいくつかあります。
リクエストを実行した後、 curl_getinfo()関数を使用して、HTTPステータスコードを含むリクエスト情報を取得できます。この関数は、複数のリクエスト情報を含む配列を返すことができます。その1つはHTTPステータスコードを表すHTTP_CODEです。
Curlセッションを閉じる前に、 curl_getinfo()を呼び出してステータスコードを取得できます。これが例です:
<?php
// 初期化 cURL セッション
$ch = curl_init();
// リクエストされたセット URL
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");
// 設定 cURL オプション
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 埋め込む cURL 聞く
$response = curl_exec($ch);
// 得る HTTP ステータスコード
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 閉鎖 cURL セッション
curl_close($ch);
// 出力 HTTP ステータスコード
echo "HTTP ステータスコード是: " . $http_code;
?>
この例では、最初にcurl_init()を使用してcurlセッションを初期化し、リクエストurlを設定し、リクエストを実行します。次に、HTTPステータスコードはcurl_getinfo()を使用して取得され、ステータスコードは$ http_code変数に保存されます。セッションが終了した後、 curl_close()を呼び出してCurlセッションを閉じます。
curl_close()は、現在のCurlセッションを閉じて、占有されたリソースをリリースします。 Curl_Close()が呼び出されると、セッションに関連するすべてのステータス情報が破壊されるため、HTTPステータスコードを含む要求された詳細情報は、Curl関数を介して取得できません。
このため、HTTPステータスコードを取得する正しい時間は、curl_exec()実行を完了し、 curl_close()の前にcurl_getinfo()を呼び出すことです。これにより、セッションを閉じる前に、要求されたステータス情報が取得されます。
HTTPステータスコードに加えて、 curl_getInfo()は他の多くの有用な情報を返すことができます。たとえば、リクエストの最終URL、かかった時間、コンテンツの長さなどの情報を返します。以下は、より多くのリクエスト情報を取得する方法の例です。
<?php
// 初期化 cURL セッション
$ch = curl_init();
// リクエストされたセット URL
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/example");
// 設定 cURL オプション
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 埋め込む cURL 聞く
$response = curl_exec($ch);
// 得る cURL 聞く信息
$request_info = curl_getinfo($ch);
// 閉鎖 cURL セッション
curl_close($ch);
// 出力聞く信息
echo "HTTP ステータスコード: " . $request_info['http_code'] . "\n";
echo "聞く的 URL: " . $request_info['url'] . "\n";
echo "聞く耗时: " . $request_info['total_time'] . "2番\n";
?>
上記のコードを介して、HTTPステータスコード、最終リクエストURL、合計リクエスト時間などの情報を取得できます。
curl_close()はセッションを閉じてリソースをフリーしますが、セッションを閉じる前に、 curl_getinfo()を介してHTTPステータスコードとその他の有用な要求情報を取得できます。したがって、HTTPステータスコードを正常に取得できるように、 curl_close()を呼び出す前にcurl_getinfo()を呼び出すようにしてください。
この記事を通して、Curlを使用してPHPでHTTPステータスコードを取得し、セッションを閉じた後に情報を取得できないという問題を回避する方法をよりよく理解できることを願っています。