[php] PHP에서 API 호출을 위한 요청 인코딩 처리

PHP를 사용하여 원격 API에 요청을 보낼 때, 데이터를 올바르게 인코딩하여 전달해야 합니다. 주로 JSON 형식의 데이터를 요청 본문에 포함하여 API를 호출하는 경우에는 적절한 인코딩이 필요합니다.

1. JSON 데이터 인코딩

PHP에서는 json_encode 함수를 사용하여 배열이나 객체를 JSON 문자열로 변환할 수 있습니다. 예를 들어, 다음과 같이 데이터를 JSON으로 인코딩할 수 있습니다.

$data = array("name" => "John", "age" => 30, "city" => "New York");
$jsonData = json_encode($data);

$jsonData 변수에는 다음과 같은 JSON 문자열이 저장됩니다.

{"name":"John","age":30,"city":"New York"}

이렇게 인코딩된 JSON 데이터를 API 요청의 본문에 포함하여 전송할 수 있습니다.

2. cURL을 사용한 API 호출

API를 호출하려면 PHP의 cURL 라이브러리를 사용할 수 있습니다. 다음은 cURL을 사용하여 JSON 데이터를 포함한 POST 요청을 보내는 예제입니다.

$ch = curl_init();
$url = "https://api.example.com/endpoint";
$data = array("name" => "John", "age" => 30, "city" => "New York");
$jsonData = json_encode($data);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

echo $response;

위 코드에서는 CURLOPT_POSTFIELDS 옵션을 사용하여 JSON 데이터를 포함한 POST 요청을 보냅니다. 또한, CURLOPT_HTTPHEADER 옵션을 사용하여 전송하는 데이터의 형식이 JSON임을 명시했습니다.

API 호출에서 중요한 요소 중 하나는 데이터의 올바른 형식과 인코딩입니다. PHP에서는 json_encode와 cURL을 이용하여 JSON 데이터를 포함한 요청을 보내는 간단한 방법을 제공하고 있습니다.


참고문헌: