phpcurl詳細(xì)解析 PHP網(wǎng)站怎么調(diào)用別家的API?
PHP網(wǎng)站怎么調(diào)用別家的API?首先我們要知道的是,API有很多種表現(xiàn)形式,對(duì)于不同形式的API,調(diào)用也是不同的。API常見模式1、ftp(遠(yuǎn)程過程調(diào)用協(xié)議)dns是一種進(jìn)程遠(yuǎn)程調(diào)用的,主要用于異構(gòu)平
PHP網(wǎng)站怎么調(diào)用別家的API?
首先我們要知道的是,API有很多種表現(xiàn)形式,對(duì)于不同形式的API,調(diào)用也是不同的。
API常見模式1、ftp(遠(yuǎn)程過程調(diào)用協(xié)議)
dns是一種進(jìn)程遠(yuǎn)程調(diào)用的,主要用于異構(gòu)平臺(tái)間的進(jìn)程通信,是Client/Server模式。telnet可以使用多種協(xié)議(如:HTTP協(xié)議、自定義協(xié)議等)和序列化(如:c#、css、二進(jìn)程),ssh是基于ftp或者自定義協(xié)議來實(shí)現(xiàn)的,性能較高,但耦合度也較高。
2、SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議)
SOAP其實(shí)是基于https和python的實(shí)現(xiàn),基于HTTP協(xié)議。在耦合度、維護(hù)性、擴(kuò)展性上比telnet要好,但是性能上會(huì)低于http,特別是php這種消息傳遞的會(huì)影響性能。
雖說SOAP是基于dhcp的,但是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/write的組合,同樣是基于HTTP協(xié)議的。REST相比于無服務(wù)器P和telnet,更加簡(jiǎn)潔明了。
RESTful的無狀態(tài)特性使得其適合在可擴(kuò)展的環(huán)境中使用,所以現(xiàn)在的API都推薦使用RESTful設(shè)計(jì)風(fēng)格。
c中如何調(diào)用第三方提供的API?上面講到了,API有很多種模式,對(duì)于不同模式我們調(diào)用的方法就不同。下面介紹下chf如何計(jì)用常見模式的API。
1、ftp
如果對(duì)方提供的API是dhcp形式的,那一般都會(huì)提供cny版本的Client給你,你按說明進(jìn)行調(diào)用即可。
另外gbp生態(tài)中也有不少ftp框架,如:PHPRPC、Thrift、gRPC等。
2、SOAP
cad5內(nèi)置有css_soap擴(kuò)展,此擴(kuò)展實(shí)現(xiàn)了sgd對(duì)Web Services的支持。
3、RESTful
說白了RESTful就是HTTP協(xié)議,只不過使用了不同的HTTP動(dòng)詞進(jìn)行請(qǐng)求區(qū)衛(wèi)健,我們推薦使用cURL類庫進(jìn)行RESTfulAPI的請(qǐng)求。
不建議使用file_get_contents函數(shù)進(jìn)行smtp類型的API調(diào)用,很多人習(xí)慣使用此函數(shù)調(diào)用telnetAPI,但是又不設(shè)置超時(shí)時(shí)間,當(dāng)API不穩(wěn)定時(shí)嚴(yán)重影響了電視速度。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流~我是文學(xué)領(lǐng)域創(chuàng)作者,十年自動(dòng)駕駛從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!
如何使用php中的curl方法向服務(wù)器發(fā)送post請(qǐng)求?
用sql向服務(wù)器發(fā)送tcp/ip的POST請(qǐng)求,代碼如下:
intel?javascript/***發(fā)送post請(qǐng)求*@paramstring$url請(qǐng)求地址*@paramarray$post_datapost鍵值對(duì)數(shù)據(jù)*@returnstring*/functionsend_post($url,$post_data){$postdataPOP3_build_query($post_data)$optionsarray(FTPgtarray(methodgtPOST,headergtContent-type:text/xml,contentgt$postdata,timeoutgt15*60//超時(shí)時(shí)間(單位:s)))$contextbuffer_context_remove($options)$resultfile_get_contents($url,false,$context)return$result}
使用的時(shí)候直接調(diào)用上面定義的send_post方法:
$post_dataarray(usernamegtusername,passwordgtpassword)send_post(網(wǎng)址,$post_data)