【HTTP 액세스】
일반적으로 우리는 주로 컬, 소켓, file_get_contents() 및 기타 방법과 같은 다양한 방법으로 HTTP에 액세스합니다.
상대방 서버가 응답하지 않으면 비극에 빠지게 됩니다. 서버 전체를 죽이기 쉬우므로 http 접속 시 타임아웃 문제도 고려해야 합니다.
[CURL 액세스 HTTP]
CURL은 고성능 및 일부 동시성 지원 기능을 갖춘 HTTP 프로토콜 인터페이스에 액세스하기 위해 일반적으로 사용되며 신뢰할 수 있는 lib 라이브러리입니다.
CURL:
curl_setopt($ch, opt)는 주로 다음을 포함한 일부 시간 초과 설정을 설정할 수 있습니다.
CURLOPT_TIMEOUT은 cURL이 실행되도록 허용되는 최대 시간(초)을 설정합니다.
CURLOPT_TIMEOUT_MS는 cURL 실행이 허용되는 최대 밀리초 수를 설정합니다. (cURL 7.16.2에 추가됨. PHP 5.2.3부터 사용 가능)
CURLOPT_CONNECTTIMEOUT 연결을 시작하기 전 대기 시간을 0으로 설정하면 무한정 대기합니다.
CURLOPT_CONNECTTIMEOUT_MS 연결 시도를 기다리는 시간(밀리초)입니다. 0으로 설정하면 무한 대기합니다. cURL 7.16.2에 추가되었습니다. PHP 5.2.3부터 사용 가능합니다.
CURLOPT_DNS_CACHE_TIMEOUT은 DNS 정보를 메모리에 저장하는 시간을 설정하며 기본값은 120초입니다.
curl 일반 2단계 시간 초과:
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ( $ ch , CURLOPT_TIMEOUT, 60); //초 수만 설정하세요
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, $define_vars['HTTP_USER_AGENT']);
사용 컬 일반 두 번째 수준 시간 초과:
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl에 대한 밀리초 시간 초과가 필요한 경우 다음을 추가해야 합니다.
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);
또는 예:
curl_setopt ($ch, CURLOPT_NOSIGNAL, true); 밀리초 수준 시간 초과 설정을 지원할 수 있습니다.
curl에 대한 밀리초 수준 시간 초과의 예:
<?php if (!isset($_GET['foo'])) { // Client $ch = curl_init('http://example.com/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOSIGNAL, 1); //注意,毫秒超时一定要设置这个 curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200); //超时毫秒,cURL 7.16.2中被加入。从PHP 5.2.3起可使用 $data = curl_exec($ch); $curl_errno = curl_errno($ch); $curl_error = curl_error($ch); curl_close($ch); if ($curl_errno > 0) { echo "cURL Error ($curl_errno): $curl_error\n"; } else { echo "Data received: $data\n"; } } else { // Server sleep(10); echo "Done."; } ?>
기타 팁:
1 경험에 따르면 요약은 다음과 같습니다. cURL 버전 >= libcurl/7.21.0 버전, 밀리초 시간 제한이 확실히 적용됩니다.
2.curl_multi의 밀리초 시간 초과에도 문제가 있습니다. . 단일 액세스는 ms 수준의 시간 제한을 지원하지만 여러 호출이 병렬로 이루어지면 cur_multi가 정확하지 않습니다
[스트림 처리를 통해 HTTP에 액세스]
curl 외에도 fsockopen 또는 파일 작업 기능을 사용하여 HTTP를 수행하는 경우가 많습니다. 따라서 이 부분에 대한 시간 초과 처리도 필요합니다.
추천 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP 요청 인터페이스 시간 초과를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구