>  기사  >  백엔드 개발  >  PHP 인터페이스에서 다른 인터페이스를 요청하는 컬 소개

PHP 인터페이스에서 다른 인터페이스를 요청하는 컬 소개

不言
不言원래의
2018-07-05 11:12:241977검색

이 글은 주로 PHP 인터페이스에서 다른 인터페이스를 요청하는 컬의 도입을 소개하고 있습니다. 이제는 모든 사람들과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

오늘 컬을 작성해야 할 상황이 왔습니다.

동일 애플리케이션의 시스템 A(쇼핑 시스템)와 시스템 B(질문 응답 시스템)는 서로 독립적입니다. 모든 사용자 데이터는 시스템 A의 데이터베이스에 존재합니다.

이제는 a에 있습니다. 시스템 B의 특정 동작은 시스템 B에서 처리되어야 합니다. 시스템은 현재 요청한 사람이 이 애플리케이션의 회원인지 확인합니다. 물론 이 애플리케이션의 회원인지 확인하는 것도 필요합니다. 현재 사용자의 ID를 데이터베이스와 비교하는데 데이터베이스는 시스템 A에 있습니다. 그때 컬을 생각해서 그림을 그려보겠습니다.

사실 직설적으로 말하면 http를 시뮬레이션하는 것입니다. 왜냐하면 ajax나 다른 방법을 통해 직접 http 요청을 시작할 수 있는 프런트 엔드와 달리 백엔드는 프런트 엔드와 동일한 효과를 얻기 위해 컬을 사용하여 이 요청을

시뮬레이션해야 하기 때문입니다.

그래서 Baidu는 PHP 컬 메서드를 검색하고 이를 캡슐화했습니다.

public static function curl_post($url,$array){
        $curl = curl_init();        //设置提交的url        
        curl_setopt($curl, CURLOPT_URL, $url);        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST, 1);        //设置post数据        
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($array));        //执行命令
        $data = curl_exec($curl);        //关闭URL请求        
        curl_close($curl);        //获得数据并返回
        return $data;
     }

그런 다음 저는 기쁘게 다음과 같이 말했습니다.

     $array = array('open_id'=>$openid);
        $url = dr_var("verify");
        $res = $this->curl_post($url,$array);

다음은 시스템 B의 인터페이스에서 시스템 A에 대한 시뮬레이션된 요청입니다. A 확인 인터페이스는 사용자의 신원을 검토한 다음 검토 결과에 따라 시스템 B의

인터페이스가 어떤 결과를 반환할지 결정하는 데 사용됩니다.

드디어 B 시스템 인터페이스를 실행해 보니 B 시스템 인터페이스의 반환 값 외에 A 시스템 인터페이스의 반환 값도 섞여 있는 것을 발견했습니다(검증). 한동안 의아해하며 확인 인터페이스를 살펴보았습니다. 반환 값에 무엇이 잘못되었나요? exit(json_encode(array("a"=>a)))가 작동하지 않아서

로 변경했습니다. return array("a"=>a); 하지만 여전히 작동하지 않아서 var_dump(array("a"=>a)); 로 다시 변경했습니다. ! ! 여전히 두 인터페이스의 반환 값을 반환합니다.

나중에, 캡슐화된 컬 함수를 문장별로 디버깅해 보니, 위의 빨간 글씨로 verify 인터페이스의 값이 직접 출력되는 것을 발견했습니다.

그래서 Baidu 키워드: 컬은 직접 출력되지 않습니다. , 큰 문자열이 나왔어요 관련 정보는 무작위로 하나 열어서 답을 찾았습니다. PHP의 컬 매개변수 설정에 대한 약간의 지식~~~

위 내용은 모두의 학습에 도움이 되기를 바랍니다.

관련 권장 사항:

PHP에서 IP의 합법성을 확인하는 방법

PHP에서 시뮬레이션된 다중 상속을 구현하는 방법

위 내용은 PHP 인터페이스에서 다른 인터페이스를 요청하는 컬 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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