현재 위치: > 최신 기사 목록> curl_close 세션을 마친 후 요청 된 HTTP 상태 코드를 얻는 방법은 무엇입니까?

curl_close 세션을 마친 후 요청 된 HTTP 상태 코드를 얻는 방법은 무엇입니까?

gitbox 2025-05-20

HTTP 요청에 PHP를 사용할 때 CURL은 개발자가 요청을 보내고 응답을 얻는 데 도움이되는 매우 일반적인 도구입니다. CURL을 사용하여 요청을 보내고 응답을 처리 할 때 문제가 발생할 수 있습니다. CURL_CLOSE ()을 호출하여 CURL 세션을 닫은 후 요청 된 HTTP 상태 코드를 어떻게 얻을 수 있습니까?

PHP에서 Curl_Close ()는 CURL 세션을 닫는 데 사용되므로 함수는 현재 세션과 관련된 모든 리소스를 출시합니다. 일반적으로 Curl_Close ()을 호출 한 후 모든 세션 정보가 파괴되므로 요청 된 HTTP 상태 코드를 직접 검색 할 수 없습니다. 그러나 세션을 마치기 전이나 후에 상태 코드를 얻는 방법이 여전히 남아 있습니다.

1. curl_getInfo () 를 통해 http 상태 코드 받기

요청을 실행 한 후 Curl_GetInfo () 함수를 사용하여 HTTP 상태 코드를 포함한 요청 정보를 얻을 수 있습니다. 이 함수는 여러 요청 정보가 포함 된 배열을 반환 할 수 있으며 그 중 하나는 HTTP_Code 이며 HTTP 상태 코드를 나타냅니다.

컬 세션을 마치기 전에 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 세션을 닫습니다.

2. Curl_Close () 후 HTTP 상태 코드를 얻을 수없는 이유는 무엇입니까?

curl_close ()는 현재 컬 세션을 닫고 점유 된 자원을 출시합니다. Curl_Close () 가 호출되면 세션과 관련된 모든 상태 정보가 파괴되므로 HTTP 상태 코드를 포함한 요청 된 세부 정보는 CURL 기능을 통해 얻을 수 없습니다.

이로 인해 HTTP 상태 코드를 얻는 데 올바른 시간은 curl_close () 전에 curl_exec () 실행을 완료하고 curl_getInfo () 를 호출하는 것입니다. 이렇게하면 세션을 마치기 전에 요청 된 상태 정보가 검색되도록합니다.

3. 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'] . "두번째\n";
?>

위 코드를 통해 HTTP 상태 코드, 최종 요청 URL 및 총 요청 시간과 같은 정보를 얻을 수 있습니다.

4. 요약

Curl_Close ()는 세션을 닫고 리소스를 해제하지만 세션을 닫기 전에 Curl_GetInfo ()를 통해 HTTP 상태 코드 및 기타 유용한 요청 정보를 얻을 수 있습니다. 따라서 http 상태 코드를 성공적으로 얻을 수 있도록 curl_close ()를 호출하기 전에 curl_getinfo ()를 호출하십시오.

이 기사를 통해 CURL을 사용하여 PHP에서 HTTP 상태 코드를 얻는 방법을 더 잘 이해하고 세션을 마친 후 정보를 얻을 수없는 문제를 피할 수 있기를 바랍니다.