PHP

[PHP] curl 사용법 (GET,POST) / REST API 요청

chsr 2021. 3. 30. 10:18
728x90
반응형

■ PHP curl 사용법 (GET,POST) / REST API 요청 


 사용법

  • GET
$method = "GET";

$data = array(
    'apiKey' => 'test'
);

$url = "https://www.naver.com" . "?" , http_build_query($data, '', );

$ch = curl_init();                                 //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      //connection timeout 10초 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //원격 서버의 인증서가 유효한지 검사 안함 
//curl_setopt($ch, CURLOPT_SSLVERSION, 3); // SSL 버젼 (https 접속시에 필요)
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
 
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
 
return $response;

 

  • POST
$method = "POST";

$data = array(
    'apiKey' => 'test'
);

$url = "https://www.naver.com";

$ch = curl_init();                                 //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      //connection timeout 10초 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //원격 서버의 인증서가 유효한지 검사 안함
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);       //POST data
curl_setopt($ch, CURLOPT_POST, true);              //true시 post 전송 
 
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
 
return $response;

 

  • REST API 요청 예제 (POST)
$clientID = "Client ID";
$clientSecret = "Client SecretKey";

$url = "https://www.naver.com";

$curl = new curl();

$body = "{
 "test" : "test"
}";		

$ch = curl_init();
curl_setopt_array($ch, array(
  CURLOPT_URL			=> $url,
  CURLOPT_POST			=> true,
  CURLOPT_RETURNTRANSFER	=> true,
  CURLOPT_HTTPHEADER		=> array(
    "X-Naver-Client-Id: " . $clientID,
    "X-Naver-Client-Secret: " . $clientSecret,
    "Content-Type: application/json; charset=UTF-8"
  ),
  CURLOPT_SSL_VERIFYPEER	=> 0,
  CURLOPT_POSTFIELDS		=> $body
));

$response = curl_exec($ch);
$sResponse = json_decode($response , true);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

return $response;

 

  • 출력값
$response = curl_exec($ch);
$sResponse = json_decode($response , true);		//배열형태로 반환
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);	// 응답코드
$error = curl_error($ch);	//에러정보

//echo "<xmp>";
print_r($sResponse);		//결과값 출력(배열형태)
//echo "</xmp><br>";
728x90
반응형