今天遇到一個(gè)需要寫(xiě)curl的需求,情況是這樣的:
同一應(yīng)用的A系統(tǒng)(購(gòu)物系統(tǒng)),B系統(tǒng)(答題系統(tǒng))相互獨(dú)立,用戶(hù)數(shù)據(jù)全部存在于A系統(tǒng)的數(shù)據(jù)庫(kù)中,
現(xiàn)在處于B系統(tǒng)的某項(xiàng)操作中,需要在B系統(tǒng)中驗(yàn)證當(dāng)前請(qǐng)求的人是不是此應(yīng)用的會(huì)員,要驗(yàn)證是不是該應(yīng)用的
會(huì)員,當(dāng)然是要拿當(dāng)前用戶(hù)的標(biāo)識(shí)到數(shù)據(jù)庫(kù)比對(duì)啊,可是數(shù)據(jù)庫(kù)在A系統(tǒng)里啊,當(dāng)時(shí)我就想到了curl,畫(huà)個(gè)圖吧:
其實(shí)說(shuō)白了,就是模擬http請(qǐng)求,因?yàn)椴煌谇岸耍梢酝ㄟ^(guò)ajax或者其他方式直接發(fā)起http請(qǐng)求,后端只好通過(guò)curl來(lái)
模擬這種請(qǐng)求,以便達(dá)到和前端相同的效果。
于是百度搜了一個(gè)php的curl方法,封裝了一下:
html' target='_blank'>public static function curl_post($url,$array){ $curl = curl_init(); //設(shè)置提交的url curl_setopt($curl, CURLOPT_URL, $url); //設(shè)置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //設(shè)置post數(shù)據(jù) curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($array)); //執(zhí)行命令 $data = curl_exec($curl); //關(guān)閉URL請(qǐng)求 curl_close($curl); //獲得數(shù)據(jù)并返回 return $data; }
然后就愉快地調(diào)用了:
$array = array( open_id = $openid); $url = dr_var( verify $res = $this- curl_post($url,$array);
這里是在B系統(tǒng)接口里面模擬請(qǐng)求了A系統(tǒng)的一個(gè)verify接口,用來(lái)審核用戶(hù)身份,然后根據(jù)審核結(jié)果決定B系統(tǒng)
接口向外返回什么。
最后跑B系統(tǒng)接口的時(shí)候,卻發(fā)現(xiàn),返回的除了B系統(tǒng)接口返回值之外,還夾雜著A系統(tǒng)接口(verify)的返回值,
一時(shí)間很是不解,到處看verify接口返回值那里出了什么錯(cuò),exit(json_encode(array( a = a)))不奏效,于是換成
return array( a = 還是不奏效,又換成var_dump(array( a = 還是不行!!!依舊返回兩個(gè)接口的返回值。
后來(lái),后來(lái),一句一句地調(diào)試封裝的curl函數(shù),發(fā)現(xiàn)上面紅字那塊就已經(jīng)將verify接口的值直接打印出來(lái)了,
于是百度關(guān)鍵字:curl 不直接輸出;嘩啦啦,出來(lái)一大串相關(guān)信息,隨便打開(kāi)一條,找到了答案,原來(lái)是curl少
設(shè)置了一個(gè)參數(shù):
//獲取數(shù)據(jù)不直接輸出curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
最終問(wèn)題解決了,也算是get到了php的curl參數(shù)設(shè)置的一個(gè)小知識(shí)點(diǎn)~~~
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP !
相關(guān)推薦:
PHP如何驗(yàn)證IP的合法性
如何實(shí)現(xiàn)php中模擬多繼承
以上就是php接口內(nèi)curl請(qǐng)求其他接口的介紹的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注