在J2EE体系中,服务器发送消息到jsp、Servlet、http等页面通常采用两种传输方式:get和post。此次主要以Servlet为列子,介绍Android与Servlet的通信,知道了这种传输机制,其他两种都是大同小异的。
前提:创建两个工程,一个是web project(上),一个是android project(下),如下图:
get方式:
我们知道,get机制采用的是在URL地址里面通过?号间隔,然后以name=value的形式给客户端传递参数。所以首先要在Android工程下的AndroidGetTest.java中onCreate方法定义好其URL地址以及要传递的参数,然后通过URL打开一个HttpURLConnection链接,此链接可以获得InputStream字节流对象,也是往服务端输出和从服务端返回数据的重要过程,而若服务端response.getInputStream.write(...)往andorid返回信息时候,就可以通过InputStreamReader作转换,将返回来的数据用BufferReader显示出来。具体代码如下:
Servlet端接收数据并返回通知:
Android端发送消息并接收Servlet返回的消息:
核心代码已准备齐全,接下来启动Tomcat服务,运行Android,会发现两端都有数据。
注意此时不能用中文,中文会乱码,下面会讲解讲解中文乱码的方法。
post方式:
post传输方式不在URL里传递,也正好解决了get传输量小、容易篡改及不安全等一系列不足。主要是通
过对HttpURLConnection的设置,让其支持post传输方式,然后在通过相关属性传递参数(若需要传递中文字符,则可以通过URLEncoder编码,而在获取端采用URLDecoder解码即可)
下面来看看服务器端和Android端的效果图:
完成。