使用URL传送对象到另一平台
来源:互联网 发布:阿里巴巴大数据学院 编辑:程序博客网 时间:2024/06/05 07:22
业务场景需要把平台A的数据传送到另一平台B,然后在B端保存数据,两边的数据表是一样的,数据类型有几个不同,考虑了使用httpclient、socket和webservice等几种解决方案后,最后选用了使用URL的ObjectStream来传送对象,代码:
import java.io.InputStream;import java.io.OutputStream;import java.io.ObjectOutputStream;import java.net.URL;import java.net.HttpURLConnection;/** * 数据推送工具类 * 2011-5-24 */public class DataPushUtil {/** * 数据推送处理 * @param goal_url * @param obj * @throws Exception */@SuppressWarnings("unused")public static void dataPush(String goal_url, Object obj) throws Exception{String push_url = "http://" + Constants.CBS_URL + "/" + goal_url; URL url = new URL(push_url);HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();urlConn.setDoOutput(true);urlConn.setDoInput(true);urlConn.setUseCaches(false);urlConn.setRequestProperty("Content-type","application/x-java-serialized-object");urlConn.setRequestMethod("POST");urlConn.connect();OutputStream outStrm = urlConn.getOutputStream();ObjectOutputStream oos = new ObjectOutputStream(outStrm);oos.writeObject(obj);oos.flush();oos.close();@SuppressWarnings("unused")InputStream inStrm = urlConn.getInputStream();}}
DataPushUtil是对象的推送工具类,调用方法很简单,只需要两个参数,goal_url是要推送到的url,obj是要传送的对象。
接收的处理代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {InputStream in = request.getInputStream();ObjectInputStream ois = new ObjectInputStream(in);try{Object push_info = ois.readObject();}catch(Exception e){e.printStackTrace();}
在doPose方法里使用ObjectInputStream把传送的ObjectStream解析成Object,要传送的对象必须实现Serializable接口。
- 使用URL传送对象到另一平台
- AJAX传送json对象到后台
- Servlet传送对象给Applet使用
- Servlet传送对象给Applet使用
- Servlet传送对象给Applet使用
- 使用SAFEARRAY传送对象(入门)
- STM32F107VC+DHT11+ESP8266传送温湿度数据到Yeelink平台上
- 解决url传送到Action后无法获得整个url的问题。
- json_后台传送json格式的对象到前台页面
- windows平台c语言使用socket通信传送图片
- 【HTML】打开页面时按照指定的URL直接跳转到另一新页面
- logstash配置读取文本文件使用kafka传送到kafka服务器
- WCF中使用MSMQ无法传送自定义对象
- WCF中使用MSMQ无法传送自定义对象
- WCF中使用MSMQ无法传送自定义对象
- 使用Bundle对象在Activity之间传送数据
- 利用反射将一个对象的值转存到另一对象
- AIX平台如何将一块硬盘的数据迁移到另一块硬盘
- String
- 负数的表示方法
- 关于JAX-RS
- c# 解析JSON的几种办法
- adb 打印终端中内存使用情况的方法
- 使用URL传送对象到另一平台
- RAC环境下修改SGA参数(转)
- 自定义TableViewCell上的按钮-找到cell行数
- 各版本ArcGISServer安装环境【四】
- ASP.NET怎么实现新闻页面的分页功能
- SharePerference 自动登录的实现
- HSSFWorkBooK用法
- Android开发点点滴滴——关于visibility属性
- 人群与社会——第二周