在這里openUser.php相當(dāng)于一個(gè)接口,其中g(shù)et_user_list 是一個(gè)API(獲取用戶列表),講求返回的數(shù)據(jù)類型為JSON格式。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比臨潁網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨潁網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋臨潁地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
需要在PHP代碼中執(zhí)行這條鏈接他就會(huì)返回。
GET方式的直接使用
$file_contents = file_get_content(';type=json')
POST方式得用下面的。
$url = ';type=json';
$ch = acurl_init ();
acurl_setopt ( $ch, CURLOPT_URL, $url );
acurl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
acurl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
acurl_setopt ( $ch, CURLOPT_POST, 1 ); //啟用POST提交
$file_contents = curl_exec ( $ch );
try{
$url='url地址';
$ch?=?curl_init();
curl_setopt($ch,?CURLOPT_URL,?$url);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);
$page_content?=?curl_exec($ch);
curl_close($ch);
var_dump($page_content);
}catch?(Exception?$exception){
var_dump($exception-getMessage());
}
首先我們要知道的是,API有很多種表現(xiàn)形式,對(duì)于不同形式的API,調(diào)用方式也是不同的。
API常見模式
1、RPC(遠(yuǎn)程過程調(diào)用協(xié)議)
RPC是一種進(jìn)程遠(yuǎn)程調(diào)用的方式,主要用于異構(gòu)平臺(tái)間的進(jìn)程通信,是Client/Server模式。RPC可以使用多種協(xié)議(如:HTTP協(xié)議、自定義協(xié)議等)和序列化方式(如:JSON、XML、二進(jìn)程),RPC是基于TCP或者自定義協(xié)議來實(shí)現(xiàn)的,性能較高,但耦合度也較高。
2、SOAP(簡單對(duì)象訪問協(xié)議)
SOAP其實(shí)是基于HTTP和XML的實(shí)現(xiàn),基于HTTP協(xié)議。在耦合度、維護(hù)性、擴(kuò)展性上比RPC要好,但是性能上會(huì)低于RPC,特別是XML這種消息傳遞的方式會(huì)影響性能。
雖說SOAP是基于HTTP的,但是SOAP提供了Session/Cookie機(jī)制來維持狀態(tài),所以一些需要狀態(tài)的(如:調(diào)用某些API前需要進(jìn)行認(rèn)證)業(yè)務(wù)中還能看見SOAP的身影。
3、RESTful
RESTful其實(shí)是一種架構(gòu)風(fēng)格,它不是一種標(biāo)準(zhǔn)!RESTful可以理解為是Json+HTTP+POST/GET/PUT/DELETE的組合,同樣是基于HTTP協(xié)議的。REST相比于SOAP和RPC,更加簡潔明了。
RESTful的無狀態(tài)特性使得其適合在分布式環(huán)境中使用,所以現(xiàn)在的API都推薦使用RESTful設(shè)計(jì)風(fēng)格。
PHP中如何調(diào)用第三方提供的API?
上面講到了,API有很多種模式,對(duì)于不同模式我們調(diào)用的方法就不同。下面介紹下PHP如何計(jì)用常見模式的API。
1、RPC
如果對(duì)方提供的API是RPC形式的,那一般都會(huì)提供PHP版本的Client給你,你按說明進(jìn)行調(diào)用即可。
另外PHP生態(tài)中也有不少RPC框架,如:PHPRPC、Thrift、gRPC等。
2、SOAP
PHP5內(nèi)置有php_soap擴(kuò)展,此擴(kuò)展實(shí)現(xiàn)了PHP對(duì)WebServices的支持。
3、RESTful
說白了RESTful就是HTTP協(xié)議,只不過使用了不同的HTTP動(dòng)詞進(jìn)行請(qǐng)求區(qū)分,我們推薦使用cURL類庫進(jìn)行RESTfulAPI的請(qǐng)求。
不建議使用file_get_contents函數(shù)進(jìn)行HTTP類型的API調(diào)用,很多人習(xí)慣使用此函數(shù)調(diào)用HTTPAPI,但是又不設(shè)置超時(shí)時(shí)間,當(dāng)API不穩(wěn)定時(shí)嚴(yán)重影響了網(wǎng)站速度。
他會(huì)提供相應(yīng)接口給你的,具體調(diào)用方法就相當(dāng)于講求某個(gè)鏈接。act=get_user_listtype=json在這里operate.php相當(dāng)于一個(gè)接口,其中g(shù)et_user_list 是一個(gè)API(獲取用戶列表),講求返回的數(shù)據(jù)類型為JSON格式。act=get_user_listtype=json';$ch = curl_init ();curl_setopt ( $ch, CURLOPT_URL, $url );curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );curl_setopt ( $ch, CURLOPT_POST, 1 ); //啟用POST提交$file_contents = curl_exec ( $ch );curl_close ( $ch );
當(dāng)前標(biāo)題:phpapi調(diào)用數(shù)據(jù) 調(diào)用php接口
文章路徑:http://www.rwnh.cn/article26/ddjcjcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、靜態(tài)網(wǎng)站、App設(shè)計(jì)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)