>  기사  >  백엔드 개발  >  PHP에서 cURL 라이브러리를 사용하여 네트워크 요청을 만드는 방법

PHP에서 cURL 라이브러리를 사용하여 네트워크 요청을 만드는 방법

PHPz
PHPz원래의
2023-06-25 10:46:451777검색

웹 개발에서는 API 요청, 웹 페이지 크롤링 등 수시로 다른 서비스와 상호 작용해야 합니다. cURL은 HTTP 요청, FTP 업로드 및 다운로드와 같은 작업을 수행하는 데 사용할 수 있는 매우 강력한 도구입니다. PHP에서는 cURL 라이브러리를 사용하여 네트워크 요청을 할 수 있습니다.

이 글에서는 cURL 라이브러리를 사용하여 PHP에서 네트워크 요청을 하는 방법을 소개합니다.

cURL 설치

먼저 서버에 cURL 확장 프로그램을 설치해야 합니다. Ubuntu에서는 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get install php-curl

CentOS에서는 다음 명령을 사용하여 설치할 수 있습니다.

sudo yum install php-curl

설치가 완료된 후 다음 명령을 사용하여 확인할 수 있습니다.

php -i | grep -i curl

cURL 확장이 성공적으로 설치되었습니다. 출력 다음 정보가 포함되어야 합니다.

curl
cURL support => enabled
cURL Information => 7.50.1

GET 요청 보내기

GET 요청을 보내는 것이 가장 간단한 요청 방법입니다. PHP에서는 컬_init() 함수를 사용하여 초기화하고, 컬_setopt() 함수를 사용하여 요청 매개변수를 설정하고, 마지막으로 컬_exec() 함수를 사용하여 요청을 보낼 수 있습니다. 다음은 GET 요청을 보내는 간단한 예입니다.

$url = 'https://example.com/api/get_data';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

echo $response;

위 코드에서는 먼저 요청된 URL을 정의합니다. 그런 다음 컬_init() 함수를 사용하여 cURL 세션을 초기화하고 요청 URL을 매개변수로 전달합니다. 그런 다음 컬_setopt() 함수를 사용하여 CURLOPT_RETURNTRANSFER 매개변수를 true로 설정하여 요청 결과가 반환되어야 함을 나타냅니다. 마지막으로, 컬_exec() 함수를 사용하여 요청을 보내고 결과를 $response 변수에 저장합니다. 마지막으로, 세션을 닫으려면curl_close() 함수를 사용하십시오.

POST 요청 보내기

POST 요청 보내기는 GET 요청 보내기보다 약간 더 복잡합니다. CURLOPT_POST 매개변수를 true로 설정하고 요청된 데이터를 CURLOPT_POSTFIELDS 매개변수로 보내려면 컬_setopt() 함수를 사용해야 합니다. 다음은 POST 요청을 보내는 예입니다.

$url = 'https://example.com/api/post_data';
$data = array(
    'name' => 'John',
    'age' => 30,
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
curl_close($ch);

echo $response;

위 코드에서는 먼저 요청된 URL과 요청된 데이터를 정의합니다. 그런 다음 컬_init() 함수를 사용하여 cURL 세션을 초기화하고 요청 URL을 매개변수로 전달합니다. 그런 다음 컬_setopt() 함수를 사용하여 CURLOPT_RETURNTRANSFER 매개변수를 true로 설정하여 요청 결과가 반환되어야 함을 나타냅니다. 그런 다음 컬_setopt() 함수를 사용하여 CURLOPT_POST 매개변수를 true로 설정합니다. 이는 POST 요청을 보내는 것을 의미합니다. 마지막으로, curl_setopt() 함수를 사용하여 CURLOPT_POSTFIELDS 매개변수를 요청된 데이터로 설정하고, http_build_query() 함수를 사용하여 해당 데이터를 URL 인코딩된 문자열로 변환합니다. 마지막으로, 컬_exec() 함수를 사용하여 요청을 보내고 결과는 $response 변수에 저장됩니다.

요청 헤더 설정

일부 API에서는 일반적인 상호 작용을 위해 특정 요청 헤더를 설정해야 합니다. 이 경우, 우리는 컬_setopt() 함수를 사용하여 CURLOPT_HTTPHEADER 매개변수를 설정하여 요청 헤더를 설정할 수 있습니다. 다음은 요청 헤더 설정의 예입니다.

$url = 'https://example.com/api/get_data';
$headers = array(
    'Authorization: Bearer xxxxxxx',
    'Content-Type: application/json',
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

echo $response;

위 코드에서는 먼저 요청한 URL과 요청 헤더를 정의합니다. 그런 다음 컬_init() 함수를 사용하여 cURL 세션을 초기화하고 요청 URL을 매개변수로 전달합니다. 그런 다음 컬_setopt() 함수를 사용하여 CURLOPT_RETURNTRANSFER 매개변수를 true로 설정하여 요청 결과가 반환되어야 함을 나타냅니다. 그런 다음, 컬_setopt() 함수를 사용하여 CURLOPT_HTTPHEADER 매개변수를 설정된 요청 헤더로 설정하고 이를 배열로 전달합니다. 마지막으로, 컬_exec() 함수를 사용하여 요청을 보내고 결과는 $response 변수에 저장됩니다.

프록시 사용

때로는 프록시 서버를 통해 요청을 보내야 할 때가 있습니다. 이 경우, 컬_setopt() 함수를 사용하여 CURLOPT_PROXY 매개변수를 설정하여 프록시 서버를 설정할 수 있습니다. 다음은 프록시 서버 사용의 예입니다.

$url = 'https://example.com/api/get_data';
$proxy = 'http://proxy.example.com:8080';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
$response = curl_exec($ch);
curl_close($ch);

echo $response;

위 코드에서는 먼저 요청된 URL과 프록시 서버 주소를 정의합니다. 그런 다음 컬_init() 함수를 사용하여 cURL 세션을 초기화하고 요청 URL을 매개변수로 전달합니다. 그런 다음 컬_setopt() 함수를 사용하여 CURLOPT_RETURNTRANSFER 매개변수를 true로 설정하여 요청 결과가 반환되어야 함을 나타냅니다. 그런 다음 컬_setopt() 함수를 사용하여 CURLOPT_PROXY 매개변수를 프록시 서버 주소로 설정합니다. 마지막으로, 컬_exec() 함수를 사용하여 요청을 보내고 결과는 $response 변수에 저장됩니다.

요약하자면, cURL 라이브러리는 HTTP 요청과 같은 작업을 수행하는 데 사용할 수 있는 매우 강력한 도구입니다. PHP에서는 cURL 라이브러리를 사용하여 네트워크 요청을 보내고 다양한 요구 사항을 충족하도록 요청 매개변수를 설정할 수 있습니다.

위 내용은 PHP에서 cURL 라이브러리를 사용하여 네트워크 요청을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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