>백엔드 개발 >PHP 튜토리얼 >PHP가 HTTP 요청을 보내는 방법 소개

PHP가 HTTP 요청을 보내는 방법 소개

巴扎黑
巴扎黑원래의
2017-08-23 11:15:291632검색

이 글에서는 주로 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(&#39;http&#39; =>
           array(
             &#39;method&#39; => &#39;POST&#39;,
             &#39;header&#39; => &#39;Content-type: application/x-www-form-urlencoded&#39;,
             &#39;content&#39; => $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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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