반응형
CURL 통신
1. curl
- curl 통신 이란 다양한 종류의 프로토콜을 사용하여 서버와 통신할 수 있도록 도와주는 모듈이다.
- HTTPS뿐 아니라 HTTP GET, POST, PUT 등의 프로토콜을 사용이 가능하고 파일 업로드 Proxy, Cookie 그리고 사용자 인증 기능도 제공하는 모듈이다.
2. curl 설치
- curl모듈이 설치되지 않았을때 curl을 사용하려 하면 아래와 같은 오류를 볼 수 있다.
Fatal error: Call to undefined function curl_init()
- 리눅스를 사용하는 경우, 아래와 같이 sudo 명령어를 이용해 curl모듈을 설치한다.
sudo apt install php-curl
3. curl 사용
- GET통신 기본
//접속 할 URL을 지정
$url = "https://www.naver.com";
//cURL 세션 초기화
$ch = curl_init();
//URL과 옵션을 설정
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 요청결과를 문자열로 반환
//cURL 실행
$res = curl_exec($ch);
//세션을 종료
curl_close($ch);
- POST통신 기본
//접속 할 URL을 지정
$url = "https://www.naver.com";
//전송할 데이터를 설정
$param = array('key' => 'data');
//cURL 세션 초기화
$ch = curl_init();
//URL과 옵션을 설정
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 요청결과를 문자열로 반환
curl_setopt($ch, CURLOPT_POST, true); // POST 전송 여부
curl_setopt($ch, CURLOPT_POSTFIELDS, $param); // POST DATA
//cURL 실행
$res = curl_exec($ch);
//세션을 종료
curl_close($ch);
- 통신시 옵션
// curl 통신시 옵션은 curl 세션 초기화와 curl 실행 사이에 옵션을 추가하여 사용한다.
// 아래의 옵션외에도 많은 옵션들이 있다.(참고 : https://www.php.net/manual/en/function.curl-setopt.php)
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // connection timeout : 10초
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 원격 서버의 인증서가 유효한지 검사 여부
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 인증서의 일반 이름 필드 또는 주체 대체 이름 필드가 제공된 호스트 이름과 일치 여부
curl_setopt($ch, CURLOPT_SSLVERSION,1); // SSL 버전(가장 좋은 방법은 이것을 설정하지 않고 기본값을 사용하는 것입니다. SSLv2 및 SSLv3의 알려진 취약점을 감안할 때 2 또는 3으로 설정하는 것은 매우 위험)
curl_setopt($ch, CURLOPT_HTTPHEADER, $send_header); // HTTP 헤더 필드의 배열 (array('Content-type: text/plain', 'Content-length: 100'))
반응형
'Web Programming > ----- PHP -----' 카테고리의 다른 글
[PHP] 객체지향 프로그래밍(OOP) (1) | 2024.12.13 |
---|---|
[PHP] 클래스(Class)와 객체(Object)의 기본 (0) | 2021.11.02 |
[PHP] explode - 특정 문자로 잘라 배열 만들기 (0) | 2021.10.18 |
[PHP] array_key_exists - 배열의 키 존재 확인 (0) | 2021.10.18 |