>  기사  >  백엔드 개발  >  PHP는 컬 라이브러리를 사용하여 HTTP 요청을 보냅니다.

PHP는 컬 라이브러리를 사용하여 HTTP 요청을 보냅니다.

WBOY
WBOY원래의
2023-05-22 08:42:21957검색

웹 개발에서 HTTP 요청을 보내는 것은 매우 중요한 작업입니다. API를 통해 데이터를 가져오거나 타사 서비스와 통신하는 경우 데이터 전송을 위해 HTTP 요청을 사용해야 합니다. PHP에서는 컬 라이브러리를 사용하여 HTTP 요청을 보낼 수 있습니다. 이 기사에서는 컬 라이브러리의 사용법을 자세히 소개합니다.

1. 컬 라이브러리 소개

컬 라이브러리는 파일 전송을 위한 라이브러리이며 다양한 프로토콜을 지원합니다. HTTP, HTTPS, FTP와 같은 일반적인 프로토콜을 지원하는 것 외에도 SMTP, POP3와 같은 이메일 프로토콜, SCP, SFTP와 같은 파일 전송 프로토콜도 지원합니다. 컬 라이브러리는 타사 서비스와의 데이터 상호 작용을 실현하기 위해 HTTP 클라이언트를 신속하게 개발하는 데 도움이 되는 매우 강력한 도구입니다.

2. 컬 라이브러리의 기본 사용법

컬 라이브러리는 많은 기능을 제공합니다. 여기서는 일반적으로 사용되는 몇 가지 기능만 소개합니다.

  1. GET 요청 보내기

curl 라이브러리를 사용하여 GET 요청을 보내는 것은 매우 간단합니다. 단지 cur_init()를 호출하여 컬 리소스를 생성한 다음 URL과 기타 매개변수를 설정하면 됩니다. 예는 다음과 같습니다.

$url = 'http://example.com/api/getdata';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

위 코드는 컬_init() 함수를 사용하여 컬 리소스를 생성하고 요청된 URL을 설정합니다. 그런 다음, 컬_setopt() 함수를 사용하여 CURLOPT_RETURNTRANSFER 매개변수를 설정합니다. 이는 HTTP 응답이 화면에 표시되는 대신 변수에 직접 출력됨을 나타냅니다. 마지막으로 컬_exec() 함수가 호출되고 결과가 저장됩니다. 실행 후 컬 리소스를 닫는 데 컬_close()가 사용됩니다.

  1. POST 요청 보내기

GET 요청 외에도 컬 라이브러리를 사용하여 POST 요청을 보내는 것도 매우 간단합니다. 단지 컬_setopt() 함수를 호출할 때 CURLOPT_POST 매개변수를 1로 설정하고, POST 데이터를 설정하려면 컬_setopt()를 사용하여 CURLOPT_POSTFIELDS를 설정하면 됩니다.

예는 다음과 같습니다.

$url = 'http://example.com/api/postdata';
$data = array(
    'name' => 'John',
    'email' => 'john@example.com',
    'message' => 'Hello World!'
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

위 코드는 http_build_query() 함수를 사용하여 POST 데이터를 URL 인코딩 데이터로 변환하고 CURLOPT_POST 및 CURLOPT_POSTFIELDS 매개변수를 설정합니다.

  1. JSON 데이터 보내기

실제 애플리케이션에서는 때때로 JSON 형식의 데이터를 서버에 보내야 할 때가 있는데, 이는 컬 라이브러리를 사용하여 쉽게 달성할 수 있습니다. CURLOPT_HTTPHEADER 매개변수를 설정하여 요청 헤더 정보를 지정하고 JSON 데이터를 요청 본문으로 보내기만 하면 됩니다.

다음은 예시입니다.

$url = 'http://example.com/api/sendjson';
$data = array(
    'name' => 'John',
    'email' => 'john@example.com',
    'message' => 'Hello World!'
);
$json = json_encode($data);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($json))
);
$result = curl_exec($curl);
curl_close($curl);

위 코드는 json_encode() 함수를 호출하여 연관 배열을 JSON 형식 데이터로 변환하고, Content-Type, Content-Length 등 요청 헤더 정보를 설정합니다.

3. 컬 라이브러리의 고급 사용법

컬 라이브러리는 HTTP 요청을 보내는 기본 기능뿐만 아니라 요청 프로세스를 더 잘 제어하는 ​​데 도움이 되는 많은 고급 기능도 제공합니다. 다음은 일반적으로 사용되는 몇 가지 고급 기능입니다.

  1. 프록시 설정

때로는 프록시 서버를 통해 네트워크 리소스에 액세스해야 할 때가 있습니다. 컬 라이브러리를 사용하여 프록시 서버를 쉽게 설정할 수도 있습니다. CURLOPT_PROXY 매개변수를 설정하기만 하면 됩니다.

다음은 예시입니다.

$url = 'http://example.com/api/getdata';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_PROXY, 'http://proxy.example.com:8080');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

위 코드는 컬_setopt() 함수를 호출하여 CURLOPT_PROXY 매개변수를 설정하고 프록시 서버의 주소와 포트를 지정합니다.

  1. 시간 초과 설정

때때로 네트워크 요청으로 인해 네트워크 지연이나 긴 서버 응답 시간으로 인해 프로그램이 너무 오랫동안 실행될 수 있습니다. 이를 방지하기 위해 시간 초과를 설정할 수 있습니다. 시간 초과는 컬 라이브러리를 사용하여 쉽게 설정할 수 있습니다. CURLOPT_CONNECTTIMEOUT 및 CURLOPT_TIMEOUT 매개변수만 설정하면 됩니다.

다음은 예입니다.

$url = 'http://example.com/api/getdata';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

위 코드는 각각 연결 시간 초과 및 요청 시간 초과 시간을 나타내는 CURLOPT_CONNECTTIMEOUT 및 CURLOPT_TIMEOUT 매개 변수를 설정합니다.

  1. SSL 인증 설정

HTTPS 프로토콜의 서버와 통신할 때 서버를 인증해야 합니다. 그렇지 않으면 통신이 이루어지지 않습니다. SSL 확인은 컬 라이브러리를 사용하여 매우 편리할 수 있습니다. CURLOPT_SSL_VERIFYPEER 및 CURLOPT_SSL_VERIFYHOST 매개변수만 설정하면 됩니다.

예는 다음과 같습니다.

$url = 'https://example.com/api/getdata';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);

위 코드는 각각 서버를 인증할지 여부를 나타내고 호스트 이름이 인증서와 일치하는지 확인하는 CURLOPT_SSL_VERIFYPEER 및 CURLOPT_SSL_VERIFYHOST 매개 변수를 설정합니다.

IV. 요약

이 글에서는 GET 요청, POST 요청, JSON 데이터 전송, 프록시 설정, 시간 초과 설정 및 SSL 확인 설정 등을 포함하여 PHP에서 HTTP 요청을 보내기 위해 컬 라이브러리를 사용하는 기본 및 고급 사용법을 소개합니다. 컬 라이브러리를 사용하면 HTTP 클라이언트를 보다 편리하게 구현할 수 있으며 이를 통해 타사 서비스와의 데이터 상호 작용 기능을 실현할 수 있습니다.

위 내용은 PHP는 컬 라이브러리를 사용하여 HTTP 요청을 보냅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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