php介面內curl請求其他介面的介紹

來源:互聯網
上載者:User
這篇文章主要介紹了關於php介面內curl請求其他介面的介紹,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

今天遇到一個需要寫curl的需求,情況是這樣的:

同一應用的A系統(購物系統),B系統(答題系統)相互獨立,使用者資料全部存在於A系統的資料庫中,

現在處於B系統的某項操作中,需要在B系統中驗證當前請求的人是不是此應用的會員,要驗證是不是該應用的

會員,當然是要拿目前使用者的標識到資料庫比對啊,可是資料庫在A系統裡啊,當時我就想到了curl,畫個圖吧:

其實說白了,就是類比http請求,因為不同於前端,可以通過ajax或者其他方式直接發起http請求,後端只好通過curl來

類比這種請求,以便達到和前端相同的效果。

於是百度搜了一個php的curl方法,封裝了一下:

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系統的一個verify介面,用來審核使用者身份,然後根據審核結果決定B系統

介面向外返回什麼。

最後跑B系統介面的時候,卻發現,返回的除了B系統介面傳回值之外,還夾雜著A系統介面(verify)的傳回值,

一時間很是不解,到處看verify介面傳回值那裡出了什麼錯,exit(json_encode(array("a"=>a)))不奏效,於是換成

return array("a"=>a);還是不奏效,又換成var_dump(array("a"=>a));還是不行!!!依舊返回兩個介面的傳回值。

後來,後來,一句一句地調試封裝的curl函數,發現上面紅字那塊就已經將verify介面的值直接列印出來了,

於是百度關鍵字:curl 不直接輸出;嘩啦啦,出來一大串相關資訊,隨便開啟一條,找到了答案,原來是curl少

設定了一個參數:

//擷取資料不直接輸出curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

最終問題解決了,也算是get到了php的curl參數設定的一個小知識點~~~

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.