>  기사  >  백엔드 개발  >  php_php 팁에서 https 요청을 얻기 위해 컬을 사용하는 방법

php_php 팁에서 https 요청을 얻기 위해 컬을 사용하는 방법

WBOY
WBOY원래의
2016-05-16 20:23:311397검색

이 기사의 예에서는 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 프로그래밍 설계에 도움이 되기를 바랍니다.

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