php中实现api接口思路介绍

API(Application Programming Interface,应用程序编程接口)在WEB应用中是非常常见的,比如开发微薄应用有微薄API,做淘宝的有淘宝API,不同的API有不同的接口方式,一般API都有一个URL的访问地址,通过这个访问地址可以获取到用户的自定义数据,但这并不是公开的,比如经过了认证后才能正确的访问到数据。
  使用新浪微博API发布一条微薄就需要提供用户名和密码认证后才能正确的发布微薄,总结了一下主要有以下几种API接口认证思路:

1. 使用HTTP Basic Authentication

在你访问一个需要HTTP Basic Authentication的URL的时候,如果你没有提供用户名和密码,服务器就会返回401,如果你直接在浏览器中打开,浏览器会提示你输入用户名和密码(google浏览器不会,bug?)。你可以尝试点击这个url看看效果:http://api.minicloud.com.cn/statuses/friends_timeline.xml

要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:

一是在请求头中添加Authorization:

 代码如下 复制代码
Authorization: “Basic 用户名和密码的base64加密字符串”

二是在url中添加用户名和密码:

http://userName:password@api.minicloud.com.cn/statuses/friends_timeline.xml

 

 代码如下 复制代码
$fp = fsockopen("www.mydomain.com",80);
fputs($fp,"GET /downloads HTTP/1.0");
fputs($fp,"Host: www.mydomain.com");
fputs($fp,"Authorization: Basic " . base64_encode("user:pass") . "");
fpassthru($fp);

2.使用Oauth认证

  OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。

下载地址:http://code.google.com/p/oauth2-php/downloads/list

3. 使用SOAP

对于应用程序开发来说,使程序之间进行因特网通信是很重要的。

目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。

通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持。SOAP 就是被创造出来完成这个任务的。

SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

时间: 2024-09-14 04:49:57

php中实现api接口思路介绍的相关文章

java、api-如何获得其他网页的pm2.5的数据传到自己数据库中,有相关api接口,可不会用

问题描述 如何获得其他网页的pm2.5的数据传到自己数据库中,有相关api接口,可不会用 如何获得其他网页的pm2.5的数据传到自己数据库中,有相关api接口,可不会用 解决方案 有相关接口那就很简单啊,比如说你调用一个接口,然后按照里面的规则传参数,然后获取回来一般有json数据,如果是android的话你可以用Gson解析成为对象.如果不是android的话,你可以用最直接的方法那就是字符串的截取,你看看怎么适合咯.

vba win32 api-vba 中调用win 32 的api接口

问题描述 vba 中调用win 32 的api接口 ※ 下面问题本人也在网上找了很久的答案,可是均不行,希望各位看官能帮帮忙.谢谢. 其中 i 找了win32的返回值为字符串的win32 api的VBA接口调用 => 测试成功,方法这里就不说了 i 找了win32通过参数返回字符串的win32 api的VBA接口调用 =>测试成功,方法这里就不说了 i 找了通过参数返回字符串数组的自定义C的api的VBA接口调用 =>没测试 例如: C的test.dll接口: void test(cha

c++-怎么用C++中API接口图形化输出B树的树形

问题描述 怎么用C++中API接口图形化输出B树的树形 怎么用C++中API接口图形化输出B树的树形,是要什么特殊的函数还是怎么弄啊 求大神指点一二 解决方案 什么平台?Windows还是Linux? 解决方案二: 什么平台?Windows还是Linux?什么平台?Windows还是Linux?什么平台?Windows还是Linux?

AngularJS中的API(接口)简单实现_AngularJS

AngularJS API API 意为 Application Programming Interface(应用程序编程接口). AngularJS 全局 API AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合,如: 比较对象 迭代对象 转换对象 全局 API 函数使用 angular 对象进行访问. 以下列出了一些通用的 API 函数:   API 描述 angular.lowercase() 转换字符串为小写 angular.uppercase() 转

《UNIX网络编程 卷1:套接字联网API(第3版)》——8.14 UDP中的外出接口的确定

8.14 UDP中的外出接口的确定 已连接UDP套接字还可用来确定用于某个特定目的地的外出接口.这是由connect函数应用到UDP套接字时的一个副作用造成的:内核选择本地IP地址(假设其进程未曾调用bind显式指派它).这个本地IP地址通过为目的IP地址搜索路由表得到外出接口,然后选用该接口的主IP地址而选定. 图8-23给出了一个简单的UDP程序,它connect到一个指定的IP地址后调用getsockname得到本地IP地址和端口号并显示输出. 在多宿主机freebsd上运行该程序,我们得

Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式_Android

本文将讲解如何通过codecogs.com和Google.com提供的API接口来将LaTeX数学函数表达式转化为图片形式.具体思路如下:       (1)通过EditText获取用户输入的LaTeX数学表达式,然后对表达式格式化使之便于网络传输.       (2)将格式化之后的字符串,通过Http请求发送至codecogs.com或者Google.com.       (3)获取网站返回的数据流,将其转化为图片,并显示在ImageView上. 具体过程为: 1.获取并格式化LaTeX数学表

【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解

源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用作nginx.conf文件中Lua API的网关. 下面描述的Nginx Lua API只能在这些配置指令的上下文中运行的用户Lua代码中调用.API以两个标准软件包ngx和ndk的形式暴露给Lua. 这些软件包位于ngx_lua中的默认全局范围内,并且始终可在ngx_lua指令中使用. 这些包可以

整合微信小程序的Web API接口层的架构设计

在我前面有很多篇随笔介绍了Web API 接口层的架构设计,以及对微信公众号.企业号.小程序等模块的分类划分.例如在<C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系>介绍了相关模块的划分,在<基于微信小程序的系统开发准备工作>介绍了Web API的架构设计思路.本篇随笔对之前介绍的架构内容进行统一的调整更新,以便更加方便实际项目的应用开发,以期达到统一.重用.清晰的目的. 1.公众号.企业号.小程序模块的划分 我们知道,目前微信企业应用,分为公众号.企业号(企业

API接口设计 注意问题

总结一下API接口开发过程中的注意事项 1.跨平台性 所谓跨平台是指我们的接口要能够支持不同的终端,比如Android.iOS.windowsphone以及桌面软件.网站等.如:不同的终端每页显示的记录数不同 采用通用的解决方案,比如通信协议就采用最常用的HTTP协议,如果是即时通信,可以采用开放的XMPP协议,做游戏的可以采用可靠的TCP协议,除非TCP不够用了,再采用定制的UDP协议. 数据交换采用xml或者json格式或者webservice等等.总之,要达到的目标就是让不同的端能够很方便