laravel 프레임 워 크 에서 GuzzleHttp 를 사용 하여 여러 개의 인 터 페 이 스 를 요청 합 니 다.

Guzzle 은 PHP 의 HTTP 클 라 이언 트 로 요청 을 쉽게 보 내 고 WEB 서비스 에 통합 합 니 다.
  • 인 터 페 이 스 는 간단 하 다. 조회 문 구 를 구축 하고 POST 요청, 스 트림 업로드 로 큰 파일 을 다운로드 하고 HTTP cookies 를 사용 하 며 JSON 데 이 터 를 업로드 하 는 등 이다.
  • 동기 화 또는 비동기 화 요청 은 모두 같은 인 터 페 이 스 를 사용 합 니 다.PSR - 7 인 터 페 이 스 를 사용 하여 요청, 응답, 분 류 를 하고 호 환 되 는 다른 PSR - 7 라 이브 러 리 를 사용 하여 Guzzle 과 공동으로 개발 할 수 있 습 니 다.
  • 바 텀 HTTP 전송 을 추상 화하 여 환경 과 다른 코드 를 바 꿀 수 있 습 니 다. 예 를 들 어 cURL 과 PHP 의 흐름 이나 socket 은 무 거 운 의존 이 아니 라 비 차단 이벤트 순환 입 니 다.
  • 미들웨어 시스템 은 클 라 이언 트 를 구성 하 는 행 위 를 만 들 수 있 습 니 다.
  • use GuzzleHttp\Client;
    use GuzzleHttp\Promise;
    
    
    class MyService extends BasicService
    {
        public function getCityListOther()
        {
            $url = Common::loadConfig('finance', 'getCityUrl', true);
            $client = new Client(['connect_timeout' => 3, 'timeout' => 5,]);
    
            $promises = [
                'buying'  => $client->getAsync($url.'?businessType=1'),
                'license' => $client->getAsync($url.'?businessType=2'),
                'deliver' => $client->getAsync($url.'?businessType=3'),
            ];
            $results = Promise\unwrap($promises);
    
            $myInfo1 = (string)$results['buying']->getBody();
            $myInfo2 = (string)$results['license']->getBody();
            $myInfo3 = (string)$results['deliver']->getBody();
    
            $buyingArr = json_decode($myInfo1, true);
            $licenseArr = json_decode($myInfo2, true);
            $deliverArr = json_decode($myInfo3, true);
            var_dump($buyingArr,$licenseArr,$deliverArr);
            }
    }
    

    좋은 웹페이지 즐겨찾기