基于XML-RPC的远程调用(Python,Java)
来源:互联网 发布:自己做相册的软件 编辑:程序博客网 时间:2024/04/29 11:39
基于XML-PRC的远程调用示例。
Ref:http://www.ibm.com/developerworks/cn/webservices/ws-pyth/part10/
Ref: http://xmlrpc.scripting.com/spec
・XML-RPC日历服务器
import calendar, SimpleXMLRPCServer
#The server object
class Calendar:
def getMonth(self, year, month):
return calendar.month(year, month)
def getYear(self, year):
return calendar.calendar(year)
calendar_object = Calendar()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))
server.register_instance(calendar_object)
#Go into the main listener loop
print "Listening on port 8888"
server.serve_forever()
・请求日历服务器(Python)
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:8888")
month = server.getMonth(2012, 5)
print month
・请求日历服务器(Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
publicclass WebClient {
publicstaticvoid main(String[] args)throws IOException {
WebClient wc = new WebClient();
wc.send();
}
privatevoid send()throws IOException {
HttpURLConnection conn = null;
String str = "<?xml version=\"1.0\"?>" +
"<methodCall>" +
"<methodName>getMonth</methodName>" +
"<params>" +
"<param>" +
"<value><i4>2012</i4></value>" +
"<value><i4>5</i4></value>" +
"</param>" +
"</params>" +
"</methodCall>";
// URL url = new URL("http://10.167.12.51/RPC2:8888");
URL url = new URL("http://localhost:8888");
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("User-Agent","Frontier/5.1.2 (WinXP)");
conn.setRequestProperty("Content-Type","text/xml");
conn.setRequestProperty("Content-length", String.valueOf(str.length()));
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
//Request
conn.getOutputStream().write(str.getBytes());
conn.getOutputStream().flush();
conn.getOutputStream().close();
//Response
InputStream in = conn.getInputStream();
BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(in));
String line = bufferedReader.readLine();
while (line !=null) {
System.out.println(line);
line = bufferedReader.readLine();
}
bufferedReader.close();
}
}
- 基于XML-RPC的远程调用(Python,Java)
- 基于XML-RPC的远程调用(Python,Java)
- 尝试Python的XML-RPC远程调用
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC).doc
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)
- 用Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)
- 基于openstack oslo_messaging的python rpc远程调用
- java基于redis客户端redisson的RPC远程服务调用
- xml-rpc远程调用
- 使用 xml-rpc 远程调用
- PHP xml-rpc远程调用
- RPC(远程过程调用)应用的java实现
- python实现rpc远程调用
- facebook的thriff 基于rpc的远程调用实现
- Java实现简单的RPC调用(基于TCP协议)
- RabbitMQ学习之基于spring-rabbitmq的RPC远程调用
- 【CSS3 入门教程系列】CSS3 Media Queries 实现响应式设计
- 查看mysql编码
- ubuntu 建立ssh服务
- javascript DOM 权限选择案例
- 查看linux系统版本
- 基于XML-RPC的远程调用(Python,Java)
- JS继承
- Jni编程总结
- Chrome 调试总是进入 Paused in debugger状态
- 对recv和send的认识
- /etc/ssh/sshd_config 详细注释(转载以备需要)
- Android自动化测试之Monkeyrunner从零开始
- C#抽象类可以有构造方法吗,若是有如何实现及调用?
- MPEG2 TS小结