php rpc连接Python,Python、PHP通过xml-rpc进行通信,xml-rpc中文的解决

可以通过XML-RPC让不同平台的软件互相交互,我们假设用PHP做前台(客户端),Python作为服务后台,之间通过XML-RPC调用Python提供的服务。例子如下:

1、PHP客户端

//xmlrpc_client.php

//XML-RPC客户端演示程序

require(''xmlrpc.inc'');

$xmlrpc_internalencoding=''UTF-8'';

//创建client对象, 三个参数依次为 path, hostname, port

#$s=new xmlrpc_client(''/testxml/xmlrpc_server.php'', ''localhost'', 80);

$s=new xmlrpc_client(''/'', ''localhost'', 8888);

//create xmlrpcval object, which allows the encoding of our variable

//创建xmlrpcval对象,将我们的PHP变量编码为XML-RPC需要的XML形式

#$inputString=new xmlrpcval(''world胜利'', ''string'');

$inputString = php_xmlrpc_encode(''胜利world'');

//create an array of parameters

//尽管我们只有一个参数,但仍然要转换成数组的形式,因为xmlrpcmsg的第二个参数是一个参数表

$parameters=array($inputString);

//create the message object

//创建XML-RPC报文,参数分别为 远程方法名 和 参数表

$msg=new xmlrpcmsg(''echoString'', $parameters);

//$s->request_charset_encoding = ''utf-8'';

//send the message, get the response

//发送报文,返回值$rsp为一个xmlrpcresp对象,它包含以下三个方法:

//faultCode() 出错代码,如果成功将返回0

//faultString() 出错信息

//value() 返回值,以xmlrpcval对象形式存在,PHP使用前需要进行解码

$s->debug = true;

$rsp=$s->send($msg);

//check for errors

if($rsp->faultcode()==0) {

//decode the response to a PHP type

//xmlrpc_decode()函数用于将xmlrpcval对象解码

$response=php_xmlrpc_decode($rsp->value());

//print results

print ''

'';

var_dump($response);

print ''

'';

} else {

//print errors

print ''Error: ''.$rsp->faultcode().'', ''.$rsp->faultstring().''
'';

}

//show messages

//然后我们来查看一下报文内容

$msg->createpayload();

print ''REQUEST:

''.$msg->payload.'''';

print ''RESPONSE:

''.$rsp->serialize().'''';

?>

2、Python服务端

# -*- coding:GB2312 -*-

import SimpleXMLRPCServer

#定义自己的CMS类

class MyCMS:

def getVersion(self

[关闭]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值