Android使用Ice进行数据请求

来源:互联网 发布:小学生笔顺软件下载 编辑:程序博客网 时间:2024/06/05 23:56

由于项目需求以后需要使用Zeroc Ice,所以对改内容进行了一下简单学习,如果有错误希望大家纠正。由于本人的是windows系统,所以就以此为例(由于官方需要加载了Google的Js,所以你懂得)

1.去官网下载 ice

https://zeroc.com/downloads/ice
下载完成安装(配置Ice-3.7.0/bin路径),然后用cmd打开命令界面,输入slice2java -v
返回版本号,证明配置成功

2.用Slice生成java文件

由于我们后端已经定义好了ice文件的接口,我只需要把接口文件用slice语言生产java文件就行了,这里可以使用bat命令
这里写图片描述

slice2java --output-dir generated EmsIceInterface.ice::copy .\generated\*.java

执行之后会在generated文件夹下生产java文件

3.配置Android项目

3.1首先在app目录下的build.gradle添加

dependencies { compile 'com.zeroc:ice:3.7.0' }

如何不想这样也可以以第三方加载ice.jar,下载地址
http://download.csdn.net/download/bingsman/10147688
3.2然后将2中生成的java文件复制到src/main/java文件夹下

4.开始使用ice进行数据请求

注意Android的http请求需要在子线程中

 Runnable mRunnable = new Runnable() {            @Override            public void run() {                try(com.zeroc.Ice.Communicator communicator                     = com.zeroc.Ice.Util.initialize())                {                    com.zeroc.Ice.ObjectPrx base = communicator.stringToProxy("SimplePrinterCreater:ws -h 192.168.16.216 -p 6788");//请求的协议以及你的Ip和端口,我这是websocket所以是ws                    printer = Ems.FontInterfacePrx.checkedCast(base);//本地ice object的代理对象                    if(printer == null)                    {                        throw new Error("Invalid proxy");                    }                    int a  = printer.GetNodeLevel(tokens[1], "linkID");//后台定义的ice方法                    System.out.println(a);                             };            }        };        new Thread(mRunnable).start();

已经可以通信了

阅读全文
0 0
原创粉丝点击