본문 바로가기
Coding/PHP

[PHP] CURL API 사용법 (GET, POST 방식)

by jamong1014 2022. 6. 25.
반응형

CURL 이란?

다양한 프로토콜로 데이터 전송이 가능한 Command Line Tool입니다. 

 

CURL 함수 정리

  • curl_init : 세션 초기화, 핸들값 리턴
  • curl_setopt : 옵션 세팅
  • curl_exec : curl 실행
  • curl_errno : 에러 발생 시 에러번호를 가져옴
  • curl_error : 에러 발생 시 에러메시지를 가져옴
  • curl_getinfo : 상태 정보를 리턴
  • curl_close : curl 세션 close

 

CURL_SETOPT 옵션 값

  • CURLOPT_FOLLOWLOCATION : TRUE로 설정 시 HTTP 헤더로 보내는 LOCATION헤더의 내용을 따름
  • CURLOPT_HEADER : TRUE로 설정 시 헤더의 내용을 출력
  • CURLOPT_NOBODY : TRUE로 설정 시 본문의 내용을 받지 않음
  • CURLOPT_ POST : 전송 Method 설정 (1-POST / 2-GET)
  • CURLOPT_RETURNTRANSFER : TRUE로 설정 시 curl_exec()의 반환 값을 문자열로 반환
  • CURLOPT_PORT : 연결 포트 설정
  • CURLOPT_TIMEOUT : 반환 값에 대한 타임아웃 설정
  • CURLOPT_POSTFIELDS : 'POST'로 보내는 데이터 정의
  • CURLOPT_REFERER : HTTP 요청에 사용되는 REFERER헤더의 내용
  • CURLOPT_URL : 접속할 URL 주소 설정
  • CURLOPT_USERAGENT : HTTP 요청에 사용되는 User-Agent헤더의 내용

예)

GET  방식 (간단한 GET 방식의 API 적용)

<?php

$parameter1 = $_POST["data1"];
$parameter2 = $_POST["data2"];
$parameter3 = $_POST["data3"];
$parameter4 = $_POST["data4"];
$KEY = "API KEY";

if($_POST['data1'] == "" || $_POST['data2'] == "" || $_POST['data3'] == "" || $_POST['data4'] == "" )
{
	echo "<script>alert('모두 입력하시오.'); history.back(); </script>";
}else{ 
	
$url = "https://API URL/?key={$key}&parameter1={$parameter1}&parameter2={$parameter2}&parameter3={$parameter3}&parameter4={$parameter4}"; 

$ch = curl_init();                                 //CURL 세션 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정    
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);       //connection timeout 3초
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환
$response = curl_exec($ch);                        //쿼리 실행
curl_close($ch);

return $response;

echo "<script>alert('API 적용'); history.back(); </script>";

?>

 

POST 방식

$url = "API URL";
 
$ch = curl_init();                                 //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);       //connection timeout 3초 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);       //POST data
curl_setopt($ch, CURLOPT_POST, true);              //true시 post 전송 
 
$response = curl_exec($ch);                        //쿼리 실행
curl_close($ch);
 
return $response;

 

 


참고

https://kimby.tistory.com/13

반응형

댓글