"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP에서 GET 요청을 보내는 방법

PHP에서 GET 요청을 보내는 방법

2024-08-29에 게시됨
검색:974

How to Send a GET Request from PHP

PHP: PHP(Hypertext Preprocessor)는 웹 개발을 위해 특별히 설계된 널리 사용되는 오픈 소스 서버 측 스크립팅 언어입니다. 원래 1994년 Rasmus Lerdorf에 의해 만들어졌으며 이후 전 세계 수백만 명의 개발자가 사용하는 강력한 언어로 발전했습니다.

PHP는 주로 동적 웹 페이지와 웹 애플리케이션을 개발하는 데 사용됩니다. 이를 통해 개발자는 HTML 내에 PHP 코드를 삽입할 수 있으므로 서버측 논리와 프레젠테이션 계층을 쉽게 혼합할 수 있습니다. PHP 스크립트는 서버에서 실행되고 결과 HTML이 클라이언트 브라우저로 전송됩니다.

PHP에서는 다양한 방법을 사용하여 GET 요청을 다른 서버로 보내거나 API에서 데이터를 검색할 수 있습니다. 다음은 세 가지 일반적인 접근 방식입니다.

  • file_get_contents() 사용

  • cURL 사용

  • Guzzle HTTP 클라이언트 사용

file_get_contents() 사용

PHP에서 file_get_contents() 함수를 사용하여 GET 요청을 보내려면,

다음 단계를 따르세요.


URL 정의

$url 변수를 GET 요청을 보내려는 URL로 설정하세요. 프로토콜(예: http:// 또는 https://)이 포함되어 있는지 확인하세요.

GET 요청 보내기

file_get_contents() 함수를 사용하여 GET 요청을 보내고 응답을 검색합니다. 이 함수는 URL을 매개변수로 사용하고 응답을 문자열로 반환합니다.

응답에는 HTML, JSON, XML, 일반 텍스트 등 서버에서 반환한 모든 콘텐츠가 포함될 수 있습니다.

file_get_contents() 함수는 헤더 및 컨텍스트 옵션과 같은 요청을 사용자 정의하기 위한 추가 매개변수를 허용할 수도 있습니다. 기본 GET 요청의 경우 일반적으로 URL 매개변수로 충분합니다.

응답 처리

file_get_contents()의 응답은 $response 변수에 저장됩니다. 애플리케이션 요구 사항에 따라 응답을 처리할 수 있습니다.

예를 들어


또는 JSON을 구문 분석하거나 응답에서 특정 정보를 추출하는 등 추가 처리를 수행합니다.

참고: GET 요청에 file_get_contents()를 사용할 때 PHP 구성에서 허용_url_fopen 옵션이 활성화되어 있는지 확인하세요. 그렇지 않으면 원격 URL에 대해 기능이 작동하지 않을 수 있습니다.

file_get_contents()는 리디렉션 처리, 헤더 설정 또는 인증 처리가 필요한 더 복잡한 요청에는 적합하지 않을 수 있다는 점에 유의하는 것이 중요합니다. 이러한 경우 cURL 또는 Guzzle과 같은 보다 강력한 HTTP 클라이언트 라이브러리를 사용하는 것이 좋습니다.

네트워크 문제나 잘못된 URL 등 GET 요청 중에 발생할 수 있는 잠재적 오류나 예외를 처리하고 적절한 오류 처리 메커니즘을 구현해야 합니다.

cURL 사용

PHP에서 cURL을 사용하여 GET 요청을 보내려면 다음 단계를 따르세요.


URL 정의

$url 변수를 GET 요청을 보내려는 URL로 설정하세요. 프로토콜(예: http:// 또는 https://)이 포함되어 있는지 확인하세요.

cURL 초기화

curl_init()를 사용하여 새 cURL 리소스를 생성하고 URL을 매개변수로 전달합니다. 그러면 cURL 세션이 초기화되고 요청에 대한 대상 URL이 설정됩니다.


옵션 설정

cURL 요청에 대한 다양한 옵션을 설정하려면 컬_setopt()를 사용하세요. 이 경우 CURLOPT_RETURNTRANSFER를 사용하여 cURL에 응답을 직접 출력하는 대신 문자열로 반환하도록 지시합니다.


요구 사항에 따라 헤더, 시간 초과, 리디렉션 처리 등 추가 옵션을 설정할 수 있습니다.

요청 실행

curl_exec()를 사용하여 cURL 요청을 실행하고 응답을 검색합니다. 이 함수는 GET 요청을 수행하고 응답을 문자열로 반환합니다.


cURL 세션 닫기

요청을 실행하고 응답을 받은 후, 컬_close()를 사용하여 cURL 세션을 닫아 시스템 리소스를 확보하세요.


응답 처리

cURL 요청의 응답은 $response 변수에 저장됩니다. JSON을 구문 분석하거나 응답에서 특정 정보를 추출하는 등 필요에 따라 응답을 처리할 수 있습니다.

예를 들어:


또는 콘텐츠 유형이나 응답 구조에 따라 추가 처리를 수행합니다.

cURL 요청 중에 발생할 수 있는 잠재적 오류나 예외를 처리하고 적절한 오류 처리 메커니즘을 구현해야 합니다.

cURL은 사용자 정의 헤더 설정, 인증 처리, 쿠키 처리 등과 같은 다양한 고급 기능을 제공합니다. 고급 사용 사례 및 옵션에 대해서는 cURL 문서 또는 PHP의 cURL 함수를 탐색할 수 있습니다.

Guzzle HTTP 클라이언트 사용

PHP에서 Guzzle HTTP 클라이언트 라이브러리를 사용하여 GET 요청을 보내려면 다음 단계를 따르세요.

Guzzle 설치

Guzzle을 사용하기 전에 Composer와 같은 패키지 관리자를 사용하여 Guzzle을 설치해야 합니다. 명령줄 인터페이스를 열고 프로젝트 디렉터리로 이동합니다. 그런 다음 다음 명령을 실행하여 Guzzle을 설치합니다.

세게 때리다

작곡가는 guzzlehttp/guzzle을 요구합니다

이 명령은 Guzzle 라이브러리와 해당 종속성을 다운로드하고 설치합니다.

PHP 파일에서 Guzzle 사용

PHP 파일에서 Guzzle 클래스를 로드하려면 Composer가 생성한 오토로더 파일이 필요합니다.

php

'vendor/autoload.php'가 필요합니다.

GET 요청 보내기

이제 Guzzle HTTP 클라이언트를 사용하여 GET 요청을 보낼 수 있습니다. 예는 다음과 같습니다.

get($url)->getBody()->getContents();
?>

이 예에서는 Guzzle의 Client 클래스를 사용하여 새 클라이언트 인스턴스를 생성했습니다. get() 메소드는 클라이언트 인스턴스에서 호출되어 URL을 매개변수로 전달합니다. get() 메소드는 지정된 URL로 GET 요청을 보냅니다.

getBody() 메소드는 응답 본문을 스트림 객체로 검색하고, getContents()는 스트림의 내용을 읽어 문자열로 반환합니다.

응답 처리

GET 요청의 응답은 $response 변수에 저장됩니다. JSON을 구문 분석하거나 응답에서 특정 정보를 추출하는 등 애플리케이션의 요구 사항에 따라 응답을 처리할 수 있습니다.

예를 들어:


또는 콘텐츠 유형이나 응답 구조에 따라 추가 처리를 수행합니다.

Guzzle은 리디렉션 처리, 요청 헤더 설정, 인증 처리, 요청 매개변수 전송 등을 포함한 다양한 고급 기능과 옵션을 제공합니다. 해당 기능에 대한 자세한 내용은 Guzzle의 설명서를 참조할 수 있습니다.

요청 중에 발생할 수 있는 잠재적인 예외를 처리하고 적절한 오류 처리 메커니즘을 구현해야 합니다.

Guzzle을 사용하면 HTTP 요청을 보내고 PHP에서 응답을 처리하는 프로세스를 단순화하는 강력하고 유연한 HTTP 클라이언트 라이브러리를 활용할 수 있습니다.

결론

사용 가능한 PHP 확장과 요청의 복잡성을 기반으로 요구 사항에 가장 적합한 방법을 선택하세요. 두 접근 방식 모두 GET 요청을 보내고 응답을 검색할 수 있으며, 이를 애플리케이션 요구 사항에 따라 추가로 처리하거나 처리할 수 있습니다.

릴리스 선언문 이 글은 https://www.tutorialspoint.com/how-to-send-a-get-request-from-php 에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3