이 글에서는 주로 PHP가 HTTP 요청을 보내는 여러 가지 방법을 소개하고, cURL을 사용하는 것 외에 PHP가 HTTP 요청을 보내는 방법을 정리합니다.
PHP 개발에서는 cURL을 사용하여 HTTP 요청을 캡슐화하는 경우가 많습니다.
cURL은 데이터를 전송하는 데 사용되는 도구이며 여러 프로토콜을 지원합니다. 예를 들어 Linux에서 컬 명령줄을 사용하면 다양한 HTTP 요청을 보낼 수 있습니다. PHP의 cURL은 다양한 프로토콜에 따라 다양한 서버와 통신할 수 있는 저수준 라이브러리이며, HTTP 프로토콜도 그 중 하나입니다.
A 패키지는 GuzzleHttp라는 최신 PHP 개발 프레임워크에서 자주 사용됩니다. 이는 HTTP 클라이언트이며 다양한 HTTP 요청을 보내는 데에도 사용할 수 있습니다. 그렇다면 구현 원리는 무엇이며 cURL과 어떻게 다른가요?
Guzzle에는 cURL이 필요합니까?
아니요. Guzzle은 모든 HTTP 핸들러를 사용하여 요청을 보낼 수 있습니다. 즉, Guzzle은 cURL, PHP의 스트림 래퍼, 소켓 및 React와 같은 비차단 라이브러리와 함께 사용할 수 있습니다. 요청을 보내는 다른 방법을 사용하도록 HTTP 핸들러를 구성합니다.
이것은 GuzzleHttp 문서 FAQ에 있는 질문입니다. GuzzleHttp는 cURL 라이브러리에 의존하지 않지만 HTTP 요청을 보내는 여러 방법을 지원한다는 것을 알 수 있습니다.
PHP가 HTTP 요청을 보내는 방법
다음은 cURL을 사용하는 것 외에 PHP가 HTTP 요청을 보내는 방법을 요약한 것입니다.
1.cURL
세부 메소드: http://www.jb51.net/article/56492.htm
2.stream 스트림 메소드
stream_context_create 함수: 텍스트 데이터 스트림을 생성하고 반환하며 다양한 fopen(), file_get_contents() 등의 프로세스, 프록시 서버, 요청 메소드, 헤더 정보 설정을 위한 특수 프로세스의 타임아웃 설정에 사용할 수 있는 옵션이 적용됩니다.
POST 요청을 예로 들어보세요:
PHP
<?php /** * Created by PhpStorm. * User: tanteng * Date: 2017/7/22 * Time: 13:48 */ function post($url, $data) { $postdata = http_build_query( $data ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents($url, false, $context); return $result; }
PHP 스트림에 대한 소개 기사: http://www.jb51.net/article/68891.htm
3.socket method
소켓을 사용하여 연결을 설정하고, HTTP 메시지를 연결하여 데이터를 보내고, HTTP 요청을 합니다.
GET 메서드의 예:
PHP
<?php $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?>
이 문서에서는 HTTP 요청을 보내는 여러 가지 방법을 소개합니다.
위 내용은 PHP가 HTTP 요청을 보내는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!