当前位置:首页 > 日记 > 正文

使用XML-RPCPHP构建Web服务实例教程

使用XML-RPCPHP构建Web服务实例教程
1。总结:

目前,有两个Web服务通信协议标准,一个是XML-RPC,和其他soap.xml-rpc比较简单,时间比较早,和肥皂是比较复杂的,主要是当它需要使用一个稳定的、健壮的、安全的和复杂的相互作用。

PHP本身集成了访问两个XML-RPC和SOAP协议,主要集中在xmlrpc扩展。此外,在PHP的梨,无论是PHP 4或PHP 5已经默认集成的XML-RPC的延伸,且延伸独立xmlrpc扩展。能独立实施的XML-RPC协议交互。如果没有xmlrpc扩展,建议使用PEAR::XML-RPC膨胀。

在这里,我们主要使用XML-RPC来描述Web服务的交互过程。内容部分来自PHP手册,内容比较详细,读者可以参考手册。

两。安装xmlrpc扩展:

如果你没有安装在你的系统因为PHP扩展,其正确安装。

在Windows平台下,我们先将扩展php_xmlrpc.dll在PHP安装目录为C: Windows或C: winnt目录(PHP4扩展C: PHP 扩展目录,PHP5扩展C: PHP ext目录的DLL文件扩展名。安装目录为你的PHP安装目录设置,这里只是举例),而在分号C前面延伸= php_xmlrpc.dll: Windows php.ini或C:系统 PHP INI;删除,然后重新启动Web服务器(phpinfo)来看有没有XML-RPC项目将能够决定是否有权安装xmlrpc扩展。

Unix / Linux平台下,如果没有xmlrpc扩展安装,请重新编译PHP。当配置添加,请添加,因为选项,然后检查phpinfo()看XMLRPC正确安装。

(Note: the following operation is based on the normal installation of XMLRPC expansion, please be sure to install it correctly.)

三、XML-RPC的工作原理:

XML-RPC大致是利用XML来沟通的全过程。首先,我们构建了一个请求,服务器端使用RPC来从RPC客户端通过XML发送请求,并返回处理结果对RPC客户端以XML的形式。客户机将分析XML以获取她需要的数据。

XML-RPC服务器端必须有现成的函数被调用的客户端,并在客户端提交的请求方法的功能必须与服务器端一致,否则将无法获得期望的结果。

这里我用简单的代码来描述整个过程。

四、XML-RPC的实践:

服务器端采用xmlrpc_server_create函数生成一个服务器端,然后注册RPC调用接口需要被曝光,接受XML数据从RPC客户端后,然后处理,处理结果显示通过XML格式的客户。

rpc_server.php文件的代码如下:
*函数:提供给RPC客户机的函数
*参数:
* $方法客户端需要调用的函数
*,$params客户端需要调用函数的参数数组
*返回:返回指定的调用结果
* /
功能rpc_server_func($方法,$params){
$参数= $params { 0 };
如果(参数= })
{
本资料由得到回报=美元的方法;
}
其他的
{
为回报=不是指定的方法或参数;
}
返回美元;
}
/ /创建一个XML-RPC服务器
xmlrpc_server美元= xmlrpc_server_create();

一个服务器登记/电话rpc_server方法,实际上指向了一个rpc_server_func功能
xmlrpc_server_register_method(xmlrpc_server美元,rpc_server

在客户端上接受xml数据
要求美元= $ http_raw_post_data;

调用客户端xml请求访问执行结果
xmlrpc_response美元= xmlrpc_server_call_method(xmlrpc_server美元,要求美元,null);
结果/处理的XML输出函数
头(''content-type:文本或XML);
Echo $xmlrpc_response;

XML-RPC /服务器资源的破坏
xmlrpc_server_destroy($ xmlrpc_server);

在这一点上,服务器端盖,然后我们建立我们的RPC客户端,客户端可以访问通过XML-RPC服务器端套接字大致80端口,然后封装RPC接口需要调用XML,提交给RPC服务器端通过POST请求,并最终获得服务器端返回结果。

rpc_client.php文件的代码如下:
*功能:一个功能,提供客户端连接到XML-RPC服务器端
* parameters:
*主机需要连接的主机
*端口连接主机的端口。
* $ rpc_server XML-RPC服务器端文件
*请求XML请求信息的封装
*返回:连接成功返回从服务器端返回的XML信息,未能返回false。
* /
功能rpc_client_call(美元美元美元的主机,端口,rpc_server,要求美元){

打开指定的服务器
$ FP = fsockopen($主机端口,美元);

/ /结构需要进行通信的XML-RPC服务器发送请求信息查询
为查询=后rpc_server HTTP / 1美元user_agent:XML-RPC客户端主持人:$主机。内容类型:文本内容长度:。Strlen(合要求)。

/向服务器发送好HTTP协议的构造失败,返回false
如果(!作用是:将内容($ FP,$查询,strlen($查询))
{
errstr美元=写错误;
返回false;
}

获取服务器返回的所有信息,包括HTTP和XML头部信息
$=;
而(!Feof($ FP))
{
$内容= fgets($ FP);
}

在返回获取内容后关闭连接资源
Fclose($ FP);
返回$内容;
}

服务器连接信息
为主机= ''localhost;
$端口= 80;
rpc_server美元= / / rpc_server ~ heiyeluren PHP;

需要发送XML请求/编码成XML,需要调用rpc_server方法、参数获取
要求美元= xmlrpc_encode_request(''rpc_server,''get);

/ / rpc_client_call呼叫请求发送到XML-RPC服务器获取信息
为响应= rpc_client_call($主机、端口rpc_server美元,美元,美元的请求);

从服务器端XML返回的分析,删除HTTP头,并转到XML PHP来识别字符串。
美元= ' ' ';
美元=爆炸($分割,$响应);
美元=拆分。array_pop($ XML);
为响应= xmlrpc_decode($ XML);

从RPC服务器信息获得的输出
print_r(合反应);
总的来说,上面的例子是提交一个方法在过去被称为rpc_server,参数得到的,然后得到服务器端的返回。从服务器端返回的XML数据是:

通过get方法获得此数据

然后我们就可以用xmlrpc_decode函数代码这个XML字符串PHP,你将能够处理它,然后整个Web服务交互完成。

五。总结:

无论是XML-RPC或肥皂,只要我们能使远程过程调用,完成我们的项目安全和安全,甚至整个Web服务是成功的。此外,如果可以的话,你也可以尝试使用梨XML-RPC做同样的操作。它可能更简单,更适合你。感兴趣的读者可以试着完成它。

相关文章

游戏存档丢失游戏存档方法(技术)

游戏存档丢失游戏存档方法(技术)

方法,游戏,技术,电脑软件,玩死亡岛游戏的用户。经常会遭遇游戏存档的丢失。当你退出游戏然后进入游戏时,先前保存的游戏就不见了。 游戏丢失的主要原因是:没有在游戏中,互联网选项的修改,只要我们进入游戏,互联网模式,单机模式就能解决问题。 那…

linux性能监视工具介绍

linux性能监视工具介绍

工具介绍,性能监视,电脑软件,linux,评论:本文主要介绍linux性能监控工具,需要的朋友可以参考一下。 1.uptime 该命令直观地显示了服务器在过去15分钟、5分钟和1分钟的平均负载。 2.vmstat vmstat输出信息每2秒,输出的10倍。 类别 特效 互换…

此外,删除和修改操作的CI(CI)框架

此外,删除和修改操作的CI(CI)框架

操作,修改,框架,删除,电脑软件,CodeIgniter的数据函数类是 db_active_rec.php数据库系统 复制代码代码如下所示: 类modelname延伸ci_model { __construct()函数 { 家长::__construct(); } } 连接到数据库:$ >加载>数据库(); 复制代码代码如下所示: cla…

如何在excel中重命名工作表

如何在excel中重命名工作表

重命名,如何在,工作,电脑软件,excel,在Excel中更快速、更方便操作,我们可以进行分类,以Excel工作表命名3个工作表,如Excel默认是sheet1sheet2sheet3,我们的分类更方便,我们可以重命名它们。有多种方法,本下面给大家解释一下。 首先,打开excel表,选…

一个教程(图形)快速注册iTunes/计算

一个教程(图形)快速注册iTunes/计算

注册,图形,帐户,教程,快速,用计算机注册iTunes的快速方法: 1。下载并安装iTunes(请参阅网页:下载并安装iTunes方法)。 2、在安装成功后,点击开始>程序-> iTunes -> itunes,你可以打开iTunes应用程序窗口。 3、点击存储->创建帐号了;(图1),输入iTun…

PHP中利用睡眠函数实现时间任务实

PHP中利用睡眠函数实现时间任务实

函数实现,实例,时间,电脑软件,PHP,在一些程序中,有一些特殊的函数需要用于定时执行。如果一个熟悉Linux的朋友会说这不容易,他会直接参与计划任务吗将crontab实现快这是真的,是可以做到的,但要事先知道具体的执行时间,然后写上计划好的任务,比如…

如何修改QQ空间名称和空间描述的字

如何修改QQ空间名称和空间描述的字

描述,空间,修改,字体颜色,颜色空间,如何修改QQ空间名称和空间描述的字体颜色 一个用户可以修改QQ空间的名称和描述,在字体颜色,操作方法如下: 第一步:登录到你的QQ空间主页,请把鼠标放在QQ空间的名字上,将虚拟框框显示出来,右上角点击编辑; 第二步…

excel2010手动批量全面出击

excel2010手动批量全面出击

批量,电脑软件,有时我们想添加或增加一些数据在Excel中得到的金额或产品。在Excel中,它是发现和发现差异非常方便,而且准确。这一次为您详细讲解如何使用excel2010分批法。 excel2010单求和法: 如下图所示,我想将A1和B1相加。 首先,我们首先需…

教你在QQ聊天中拒绝陌生人

教你在QQ聊天中拒绝陌生人

聊天,教你,陌生人,电脑软件,QQ,甲:你好。 B:对不起,你是谁 答:我是XXX B:我不认识你。。你是怎么进来的 甲:我已经给你加了,忘了吧 hellip;hellip; 这是一个非常典型的互联网聊天的开始。彼此交谈了几句,真的没什么要说的,有时候陌生人有时骚扰…

PHP判断IP黑名单程序的代码示例

PHP判断IP黑名单程序的代码示例

代码示例,黑名单,程序,电脑软件,PHP,学校新闻系统只需要一些新闻就可以在学校内打开IP浏览,所以一个代码被重写来实现这个功能。实施后,其结果是包括IP被列入ip.txt文件,并支持C类IP,例如: ip.txt 一百九十二点一六八 211.67.188 211.67.191.25…

kamdbundleverificationfailederro

kamdbundleverificationfailederro

解决方案,错误,电脑软件,kamdbundleverificationfailederrorr,当安装的iPad,iPhone或iTouch,一个应用程序,有一个kamdbundleverificationfailederrorr错误提示。 此错误表示您正在安装的软件不能安装在这个移动设备中。可能是系统版本不匹配,例…

PHP如何保留表单提交后填充的信息

PHP如何保留表单提交后填充的信息

填充,表单,提交后,电脑软件,PHP,本文介绍了PHP提交表单失败时总结信息的几种方法,最常用的方法是使用缓存。如果这个方法很慢,可能是个问题。最好的方法是使用ajax。 1。使用头标头设置缓存控制头缓存控制。 PHP代码如下所示: 头('cache-con…