android端使用hessian跟服务器通讯
2015-10-31 22:09
357 查看
上一篇介绍了java客户端使用hessian跟服务器进行通讯,即java客户端调用服务器端的api,这一篇继续上一篇的内容,服务器端没有变化,客户端变成android,如果你没有看上一篇,请参阅博客 http://blog.csdn.net/tan313/article/details/49536163. android端的编写,首先需要下载jar包hessionorid.jar.这里我会提供完整的代码下载,代码里面是有这个jar包的。
新建android工程,导入上一篇写到的web服务器导出的jar包,然后也需要导入hessianorid.jar包。给出代码:
这里面url需要你们自己改动,就是你之前web服务器的url.其他不述说了,主要是jar包的导入比较关键,代码编写个人认为相对简单。
布局文件:
最后记得需要添加权限:
运行无问题。
服务器端和android客户端代码链接下载:http://download.csdn.net/detail/tan313/9230211
新建android工程,导入上一篇写到的web服务器导出的jar包,然后也需要导入hessianorid.jar包。给出代码:
package com.example.hessionclientandroid; import java.net.MalformedURLException; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.StrictMode; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import com.caucho.hessian.client.HessianProxyFactory; import com.hession.service.BasicApi; public class MainActivity extends Activity implements OnClickListener{ private Button print; private Button login; private BasicApi basic; String url = "http://192.168.1.114:8080/HessionWeb/hessian"; private Handler mHandler = new Handler(){ @Override public void handleMessage(android.os.Message msg) { switch (msg.what) { case 0: Toast.makeText(MainActivity.this, basic.print(), Toast.LENGTH_SHORT).show(); break; case 1: Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show(); break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(Build.VERSION.SDK_INT >= 11) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build()); } InitViews(); } private void InitViews() { print = (Button) findViewById(R.id.print); login = (Button) findViewById(R.id.login); print.setOnClickListener(this); login.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.print: new Thread(){ @Override public void run() { try { HessianProxyFactory factory = new HessianProxyFactory(); factory.setReadTimeout(5000); basic = (BasicApi) factory.create(BasicApi.class, url); mHandler.sendEmptyMessage(0); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }; }.start(); break; case R.id.login: new Thread(){ @Override public void run() { try { HessianProxyFactory factory = new HessianProxyFactory(); factory.setReadTimeout(5000); basic = (BasicApi) factory.create(BasicApi.class, url); if(basic.login("tdw", "123456")) mHandler.sendEmptyMessage(1); else mHandler.sendEmptyMessage(2); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }; }.start(); break; } } }
这里面url需要你们自己改动,就是你之前web服务器的url.其他不述说了,主要是jar包的导入比较关键,代码编写个人认为相对简单。
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <Button android:layout_marginTop="20dp" android:id="@+id/print" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="打印(调用服务器print()方法)" /> <Button android:id="@+id/login" android:layout_marginTop="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录(调用服务器login()方法)" /> </LinearLayout>
最后记得需要添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
运行无问题。
服务器端和android客户端代码链接下载:http://download.csdn.net/detail/tan313/9230211
相关文章推荐
- Android Studio系列教程六--Gradle多渠道打包
- android 您的手机上未安装应用程序,个别手机失败
- android 67 生成和解析xml
- Android通过动态加载Fragment实现TabActivity效果
- Android性能分析工具
- Android Studio工程中添加Admob广告条代码详解
- android开发关于和使用本机内存、内置存储卡和外置存储卡 (转)
- Android手机自带内部存储路径的获取 (转)
- android自定义对话框
- android 自己绘画圆形文字bitmap
- android开发日志之2048安卓版
- 浅谈Android RecyclerView
- Android学习之初识xUtils
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- android SQLiteDatabase数据库使用的时候 常见问题
- android 之 spinner的简单使用
- Android-Universal-Image-Loader学习笔记(一)
- Android-Universal-Image-Loader最新框架解析
- Android 不通过USB数据线调试的方法