標籤:ret log 朋友 http 代碼 use 類比 etop close
今天公司做個東西,需要條用同事的介面,My Code和他的代碼不在同一個域下,但是都是子域。
a.ifensi.com與b.ifensi.com的關係。
我需要傳遞一個關聯陣列過去,他那邊給我返回一個json對象。fsocket也可以實現這個需求,但是似乎程式碼數比較多。朋友推薦用php的內建curl函數,但是用這個函數之前需要開啟擴充,開啟php.ini檔案,把 ;extension=php_curl.dll 前面的;去掉,重啟apache就可以了。
具體代碼如下:
unset($arrPostInfo);
$arrPostInfo = array("key"=>$key,"cyid"=>$login_id,"startday"=>$startday,"endday"=>$endday,"page"=>$page,"limit"=>$pernum);
$url = ‘http://gb.ifensi.com/api/userhavelogs/‘;//請求的url地址
$ch = curl_init();//開啟
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $arrPostInfo);
$response = curl_exec($ch);
curl_close($ch);//關閉
$result = json_decode($response,true);//因為介面那邊返回的是json對象,所以這裡把json對象解碼並轉換成數組,這樣便於操作(json_decode()函數的第二個參數為true時,返回的就是解碼後的數組,而不會是解碼後的對象)。
這樣寫代碼是不是比fsocket簡潔多了。有點沒搞明白,就是黑色加粗的四行代碼似乎有順序要求,我把前兩項放到後面,就返回bool值。以後再研究研究.
http://blog.csdn.net/linking530/article/details/39400747
PHP類比POST提交資料並獲得傳回值之CURL方法(使用PHP extension,然後使用php_curl.dll,很不錯)