php调用api

PHP网站怎么调用别家的API?

首先我们要知道的是,API有很多种表现形式,对于不同形式的API,调用方式也是不同的

API常见模式

1RPC(远程过程调用协议)

RPC是一种进程远程调用的方式,主要用于异构平台间的进程通信,是Client/Server模式RPC可以使用多种协议(如:HTTP协议自定义协议等)和序列化方式(如:JSONXML二进程),RPC是基于TCP或者自定义协议来实现的,性能较高,但耦合度也较高

2SOAP(简单对象访问协议)

SOAP其实是基于HTTP和XML的实现,基于HTTP协议在耦合度维护性扩展性上比RPC要好,但是性能上会低于RPC,特别是XML这种消息传递的方式会影响性能

虽说SOAP是基于HTTP的,但是SOAP提供了Session/Cookie机制来维持状态,所以一些需要状态的(如:调用某些API前需要进行认证)业务中还能看见SOAP的身影

3RESTful

RESTful其实是一种架构风格,它不是一种标准!RESTful可以理解为是Json+HTTP+POST/GET/PUT/DELETE的组合,同样是基于HTTP协议的REST相比于SOAP和RPC,更加简洁明了

RESTful的无状态特性使得其适合在分布式环境中使用,所以现在的API都推荐使用RESTful设计风格

PHP中如何调用第三方提供的API?

上面讲到了,API有很多种模式,对于不同模式我们调用的方法就不同下面介绍下PHP如何计用常见模式的API

1RPC

如果对方提供的API是RPC形式的,那一般都会提供PHP版本的Client给你,你按说明进行调用即可

另外PHP生态中也有不少RPC框架,如:PHPRPCThriftgRPC等

2SOAP

PHP5内置有php_soap扩展,此扩展实现了PHP对WebServices的支持

3RESTful

说白了RESTful就是HTTP协议,只不过使用了不同的HTTP动词进行请求区分,我们推荐使用cURL类库进行RESTfulAPI的请求

不建议使用file_get_contents函数进行HTTP类型的API调用,很多人习惯使用此函数调用HTTPAPI,但是又不设置超时时间,当API不稳定时严重影响了网站速度

PHP如何调用API接口他会提供相应接口给你的,具体调用方法就相当于讲求某个链接act=get_user_list&type=json在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式act=get_user_list&type=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 );

(随机推荐阅读本站500篇优秀文章点击前往:500篇优秀随机文章)
来源:本文由易搜IT博客原创撰写,欢迎分享本文,转载请保留出处和链接!