Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in Curl, das andere Schnittstellen in der PHP-Schnittstelle anfordert

Einführung in Curl, das andere Schnittstellen in der PHP-Schnittstelle anfordert

不言
不言Original
2018-07-05 11:12:242029Durchsuche

Dieser Artikel stellt hauptsächlich die Einführung von Curl-Anfragen in der PHP-Schnittstelle vor. Jetzt kann ich ihn mit Ihnen teilen.

Heute bin ich auf einen gestoßen müssen schreiben Die Anforderungen für Curl sind wie folgt:

System A (Einkaufssystem) und System B (Frage-Antwort-System) derselben Anwendung sind unabhängig voneinander. Alle Benutzerdaten sind in der Datenbank des Systems vorhanden A.

Jetzt befinden wir uns in einem Vorgang in System B. Wir müssen in System B überprüfen, ob die Person, die gerade eine Anfrage stellt, Mitglied dieser Anwendung ist, um zu überprüfen, ob sie ein

Mitglied ist Für diese Anwendung müssen wir natürlich das Logo des aktuellen Benutzers mit der Datenbank vergleichen, aber die Datenbank befindet sich in System A. Damals dachte ich an Curl und zeichnete ein Bild:

Um es ganz klar auszudrücken: Es dient dazu, eine http-Anfrage zu simulieren, denn im Gegensatz zum Front-End, das HTTP-Anfragen direkt über Ajax oder andere Methoden initiieren kann, muss das Back-End dazu Curl verwenden

Simulieren Sie diese Art von Anfrage, um den gleichen Effekt wie im Frontend zu erzielen.

Also suchte Baidu nach einer PHP-Curl-Methode und kapselte sie:

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;
     }

Dann nannte ich sie glücklich:

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

Hier ist eine Verifizierungsschnittstelle, die die Anforderung von System A in der Schnittstelle von System B simuliert, um die Benutzeridentität zu überprüfen, und dann System B

Was das ist Schnittstelle kehrt zur Außenwelt zurück.

Als ich schließlich die B-Systemschnittstelle ausführte, stellte ich fest, dass sie zusätzlich zum Rückgabewert der B-Systemschnittstelle auch mit dem Rückgabewert der A-Systemschnittstelle vermischt war (überprüfen).

Es war eine Zeit lang sehr verwirrend. Ich schaute mich um, um zu sehen, was mit dem Rückgabewert der Verifizierungsschnittstelle (json_encode(array("a"=>a))) nicht stimmte. Funktioniert nicht, also habe ich es durch

return array("a" =>a)) ersetzt. Hat immer noch nicht funktioniert, also habe ich es in var_dump(array("a"=>a)) geändert. ; und es hat immer noch nicht funktioniert! ! ! Geben Sie weiterhin die Rückgabewerte der beiden Schnittstellen zurück.

Später, später, als ich die gekapselte Curl-Funktion Satz für Satz debuggte, stellte ich fest, dass der Wert der Überprüfungsschnittstelle direkt im roten Buchstaben oben gedruckt wurde,

Also Baidu-Schlüsselwort: Curl ist keine direkte Ausgabe; bla, bla, bla, eine Menge verwandter Informationen kam zufällig heraus und fand die Antwort:

einen Parameter festlegen >

//获取数据不直接输出curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

Am Ende wurde das Problem gelöst und es kann als kleiner Wissenspunkt über die Curl-Parametereinstellung von PHP angesehen werden~~~

Das Oben finden Sie den gesamten Inhalt dieses Artikels. Ich hoffe, dass er für alle zum Lernen hilfreich ist. Weitere Informationen finden Sie auf der PHP-Chinese-Website.

Verwandte Empfehlungen:

So überprüfen Sie die Rechtmäßigkeit von IP in PHP

So implementieren Sie simulierte Mehrfachvererbung in PHP

Das obige ist der detaillierte Inhalt vonEinführung in Curl, das andere Schnittstellen in der PHP-Schnittstelle anfordert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn