이 기사의 예에서는 PHP가 컬을 사용하여 https 요청을 얻는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
오늘 프로젝트를 진행 중인데 타사 API를 얻기 위해 컬을 사용해야 합니다.
이전에는 컬을 사용하여 http 요청을 얻을 수 있었지만 오늘 https 요청을 얻을 때 다음과 같은 오류 메시지가 나타났습니다. 인증서 확인에 실패했습니다.
SSL 인증서 문제, CA 인증서가 올바른지 확인하세요. 세부 정보: 오류:14090086:SSL 루틴:SSL3_GET_SERVER_CERTIFICATE:인증서 확인 실패
해결책은 컬 요청 중에
을 추가하는 것입니다.
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false) // 인증서 확인 건너뛰기
cur_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 인증서에서 SSL 암호화 알고리즘이 존재하는지 확인
컬 https 요청 코드
/**컬이 https 요청을 받습니다
* @param String $url 요청한 URL
* @param Array $data 전송할 데이터
* @param Array $header 요청 시 전송되는 헤더
* @param int $timeout 제한 시간, 기본값은 30초
*/
함수 컬_https($url, $data=array(), $header=array(), $timeout=30){
$ch = 컬_초기화()
cur_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 인증서 확인 건너뛰기
cur_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 인증서에서 SSL 암호화 알고리즘이 존재하는지 확인
컬_setopt($ch, CURLOPT_URL, $url)
컬_setopt($ch, CURLOPT_HTTPHEADER, $header)
컬_setopt($ch, CURLOPT_POST, true)
컬_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data))
cur_setopt($ch, CURLOPT_RETURNTRANSFER, true)
컬_setopt($ch, CURLOPT_TIMEOUT, $timeout)
$응답 = 컬_exec($ch)
If($error=curl_error($ch)){
사망($error);
}
컬_닫기($ch)
$응답 반환
}
// 호출
$url = 'https://www.example.com/api/message.php'
$data = array('이름'=>'fdipzone')
$헤더 = 배열()
$response = 컬_https($url, $data, $header, 5)
에코 $응답
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.