>백엔드 개발 >PHP 튜토리얼 >API에 액세스할 때 401 무단 오류를 방지하기 위해 Curl 세션을 활성 상태로 유지하려면 어떻게 해야 합니까?

API에 액세스할 때 401 무단 오류를 방지하기 위해 Curl 세션을 활성 상태로 유지하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-02 09:46:10802검색

How Can I Keep a Curl Session Alive to Avoid 401 Unauthorized Errors When Accessing APIs?

Curl과 PHP를 사용하여 세션 유지

API에 연결하고, 사용자를 인증하고, 사용자 세부 정보를 보려면 먼저 로그인하여 세션 쿠키를 얻어야 합니다. . 그러나 Curl을 사용하는 경우 사용자 세부 정보에 액세스하려고 하면 401 무단 오류가 발생할 수 있습니다. 이는 Curl이 서로 다른 엔드포인트 간의 통신을 활성화하기 위해 세션 쿠키를 유지해야 하기 때문에 발생합니다.

제공된 코드는 로그인 엔드포인트에 컬을 적용하고 쿠키 항아리를 저장합니다. 그러나 후속 요청 시 저장된 쿠키를 함께 보내려면 CURLOPT_COOKIEFILE도 동일한 쿠키 jar로 설정해야 합니다. 이렇게 하면 Curl에 세션을 유지하고 사용자 세부 정보를 성공적으로 검색하는 데 필요한 정보가 제공됩니다.

수정된 코드는 다음과 같습니다.

define("COOKIE_FILE", "cookie.txt");

// Login the user
$ch = curl_init('http://api.example.com/login/joe/smith');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);

// Read the session saved in the cookie file
echo "<br /><br />";
$file = fopen("cookie.txt", 'r');
echo fread($file, 100000000);   
echo "<br /><br />";

// Get the users details
$ch = curl_init('http://api.example.com/user');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
**curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE);** // **Set the cookie file** 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);

CURLOPT_COOKIEFILE을 추가하면 Curl이 이제 세션을 유지합니다. 쿠키를 사용하여 사용자 세부 정보에 성공적으로 액세스했습니다.

위 내용은 API에 액세스할 때 401 무단 오류를 방지하기 위해 Curl 세션을 활성 상태로 유지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.