> 백엔드 개발 > PHP 튜토리얼 > PHP의 cURL 라이브러리

PHP의 cURL 라이브러리

巴扎黑
풀어 주다: 2016-11-21 13:40:42
원래의
1436명이 탐색했습니다.

PHP의 cURL 라이브러리에는 주로 두 가지 Request와 Guzzle이 있는데 둘 다 매우 복잡합니다.

cURL을 먼저 사용하는 요청입니다. cURL이 없으면 전송을 수동으로 지정하지 않는 한 fsocket이 자동으로 활성화됩니다.

Guzzle은 풍부한 로그 라이브러리 지원과 로그 형식을 갖추고 있으며, 구독을 위해 플러그인 구독을 사용합니다. 코드 관점에서 볼 때 이벤트 메커니즘을 사용하며 품질이 더 높습니다.

cURL(최소 v3만)만 지원하며 ReactPHP가 사용하는 Symfony의 EventEmitter를 사용합니다.

최근(2014-03-28) v3.8.1에서 v4.0.0rc로 업그레이드된 것을 확인했는데, 네임스페이스가 실제로 변경되어 처음 두 문단이 한 문단으로 줄어들었습니다. 레벨 Guzzle도 소스 코드 디렉토리에서 제거되었습니다. 이는 의미가 없으며 다른 일반적인 PHP 라이브러리와 호환되거나 일관성이 없습니다.

지금이 핵심입니다. 평소에는 Guzzle을 잘 사용하고 있는데 어제 문제를 발견했습니다. 원격 URL이 있는데 결제 결과를 확인하려면 Alipay에 가야 합니다. 이 URL을 호출하면 Guzzle은 성공하지 못하지만 요청은 성공합니다.

다음은 cURL 명령에 대한 내용으로, connect-timeout과 timeout-max라는 두 가지 시간 제한이 있으며(후자는 일반적으로 프로그램에서 timeout이라고 함) 후자에 전자가 포함됩니다. . , cURLl의 기본 연결 시간 제한은 300초이며 timeout-max에는 값이 설정되어 있지 않지만 포함 관계로 인해 제한 시간을 설정하지 않으면 최소 300초가 됩니다.

PHP의 fsocket의 경우 php.ini에 default_socket_timeout 설정 항목이 있기 때문에 기본값은 60초에 불과합니다.

또한 cURL은 기본적으로 http 리디렉션을 지원하지 않으며 -L 옵션(매개변수 없음)을 전달해야 합니다. 그러나 PHP 및 Python을 사용한 경험에 따르면 많은 cURL 라이브러리는 기본적으로 리디렉션을 활성화합니다. 적어도 Guzzle의 문서에는 켜져 있고 필요한 경우 수동으로 꺼야 한다고 명시되어 있습니다.


관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿