ホームページ  >  記事  >  バックエンド開発  >  PHPインターフェイスで他のインターフェイスをリクエストするcurlの概要

PHPインターフェイスで他のインターフェイスをリクエストするcurlの概要

不言
不言オリジナル
2018-07-05 11:12:241977ブラウズ

この記事では主に、PHP インターフェースで他のインターフェースをリクエストするカールの導入について紹介します。これには、特定の参考値があります。今、それをあなたと共有します。困っている友達は、それを参照できます。

今日、私は遭遇しましたcurl の要件は次のとおりです。

同じアプリケーションのシステム A (ショッピング システム) とシステム B (応答システム) は互いに独立しており、すべてのユーザー データはアプリケーションのデータベースに存在します。システム A.

現在、システム B で操作中です。システム B で、現在リクエストしている人がこのアプリケーションのメンバーであるかどうかを確認する必要があります。彼が

であるかどうかを確認するにはこのアプリケーションのメンバーです。もちろん、現在のユーザーのロゴを取得する必要があります。ロゴをデータベースと比較しますが、データベースはシステム A にあります。そのとき、私はcurlを思いついて、次の図を描きました。

##実際、率直に言うと、http リクエストをシミュレートすることです。フロントエンドとは異なり、http リクエストは ajax またはその他のメソッドを通じて直接開始でき、バックエンドは

フロントエンドと同じ効果を達成するために、curl を介してこのリクエストをシミュレートします。

そこで、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 のリクエストをシミュレートしてユーザー ID をレビューし、レビュー結果に基づいてシステム B を決定する検証インターフェイスです

インターフェースが外の世界に戻ります。

最終的にB系インターフェースを実行してみると、B系インターフェースの戻り値に加えて、A系インターフェースの戻り値も混在していることがわかりました(検証)。

しばらくの間、非常に混乱していました。当惑しました。検証インターフェイスの戻り値の何が問題なのかを見回しました。exit(json_encode(array("a"=>a)))動作しないので、

return array("a" =>a); に置き換えましたが、それでも動作しなかったので、 var_dump(array("a"=>a)) に変更しました。 ; それでもうまくいきませんでした。 ! !それでも 2 つのインターフェイスの戻り値を返します。

その後、カプセル化されたcurl関数を一文ずつデバッグしたところ、検証インターフェイスの値が上の赤い文字で直接出力されていることがわかりました。

つまり、Baiduのキーワード:curlです。は直接出力ではありません。なんとか、大量の関連情報が出てきました。ランダムに 1 つを開いて答えを見つけました。カール マスター

がパラメータを設定していることがわかりました:

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

最終的には問題は解決したので、PHPのcurlパラメータ設定に関するちょっとした知識として捉えることができます~~~

上記はこの記事の全内容は、皆さんの学習に役立つことを願っています。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

PHP で IP の合法性を検証する方法

#PHP でシミュレートされた多重継承を実装する方法

以上がPHPインターフェイスで他のインターフェイスをリクエストするcurlの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。