Maison > développement back-end > tutoriel php > Introduction à curl demandant d'autres interfaces dans l'interface php

Introduction à curl demandant d'autres interfaces dans l'interface php

不言
Libérer: 2023-04-02 13:48:01
original
2073 Les gens l'ont consulté

Cet article présente principalement l'introduction de curl demandant d'autres interfaces dans l'interface PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Aujourd'hui, j'ai rencontré un. besoin d'écrire Les exigences pour curl sont les suivantes :

Le système A (système d'achat) et le système B (système de réponse aux questions) de la même application sont indépendants l'un de l'autre. Toutes les données utilisateur existent dans la base de données du système. A.

Nous sommes maintenant dans une opération dans le système B. Nous devons vérifier dans le système B si la personne qui demande actuellement est membre de cette application Pour vérifier si elle est membre

. de cette application, bien sûr, nous devons obtenir le logo de l'utilisateur actuel. Comparez le logo à la base de données, mais la base de données est dans le système A. À ce moment-là, j'ai pensé à curl et j'ai dessiné une image :

En fait, pour parler franchement, il s'agit de simuler une requête http, car contrairement au front-end, qui peut directement lancer des requêtes http via ajax ou d'autres méthodes, le back-end doit utiliser curl pour.

simuler ce genre de requête afin d'obtenir le même effet que le front end.

Baidu a donc recherché une méthode PHP curl et l'a encapsulée :

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;
     }
Copier après la connexion

Puis j'ai appelé avec plaisir :

     $array = array('open_id'=>$openid);
        $url = dr_var("verify");
        $res = $this->curl_post($url,$array);
Copier après la connexion

Voici une interface de vérification qui simule la demande du système A dans l'interface du système B pour vérifier l'identité de l'utilisateur, puis décider du système B en fonction des résultats de l'examen

Qu'est-ce que l'interface renvoie au monde extérieur.

Quand j'ai finalement exécuté l'interface du système B, j'ai découvert qu'en plus de la valeur de retour de l'interface du système B, elle était également mélangée avec la valeur de retour de l'interface du système A (vérifier).

C'était très déroutant pendant un moment. J'ai regardé autour de moi pour voir ce qui n'allait pas avec la valeur de retour de l'interface de vérification exit(json_encode(array("a"=>a))) . Cela ne fonctionne pas, donc je l'ai remplacé par

return array("a" =>a); Cela n'a toujours pas fonctionné, alors je l'ai changé en var_dump(array("a"=>a)) ; et ça n'a toujours pas fonctionné ! ! ! Renvoie toujours les valeurs de retour des deux interfaces.

Plus tard, lorsque j'ai débogué la fonction curl encapsulée phrase par phrase, j'ai découvert que la valeur de l'interface de vérification était imprimée directement dans la lettre rouge ci-dessus,

Donc le mot-clé Baidu : curl n'est pas direct Sortie ; bla, bla, bla, un tas d'informations connexes sont sorties. J'en ai ouvert une au hasard et j'ai trouvé la réponse. Il s'est avéré que curl master

a défini un paramètre :

<🎜. >

//获取数据不直接输出curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
Copier après la connexion

En fin de compte, le problème a été résolu, et il peut être considéré comme un petit point de connaissance sur le réglage des paramètres curl de PHP~~~

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun, et plus encore. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment vérifier la légalité de l'IP en PHP


Comment implémenter l'héritage multiple simulé en PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal