在Android开发过程中,我们需要访问网络上的Web资源,比如网络上的WEB请求。在这里Android就好像是一个终端,可以用来接收Web服务器端发送过来的数据。下面我以Struts2作为Web服务器端的Web框架。来说明Android客户端接收Web请求的过程。
首先,我们要配置Web服务器端,添加Struts2所需要的JAR包(包括JSON包)
下面是服务器端所要配置的JAR包,如下所示:
我们看看json包,有如下: json-lib-**.jdk15.jar,struts2-json-plugin-***.jar,ezmorph-**.jar
接下配置web.xml文件,代码如下所示:
添加完JAR包后。我们来配置一下struts.xml文件,这个文件存放在src根目录下面,代码如下所示:
看看这个action
<action name="login" class="com.dongzi.action.LoginAction"
method="login">
<result type="json"></result>
<!--返回值类型设置为json,不设置返回页面-->
</action>
返回的是json 数据。而且是由LoginAction类去处理,它存放在com.dongzi.action下面。LoginAction类的代码如下:
我下面简单说一下JSON解析过程。
JSONObject json=new JSONObject();
//【这里在JSON中包含一个Map】
Map map=new HashMap<Object, String>();
map.put("username", "xiaomingg");
map.put("password", "1234");
map.put("state", "1");
json.put("userbean", map);
response.getWriter().write(json.toString());
通过访问http://localhost:8888/AndroidServerApp/login.action,得到如下JSON数据:
服务器端的配置完成了。下面我来配置android客户端了。
由于Android内置提拱了解析JSON数据的包。所以就不需要使用第三方包了
Android 访问网络资源的代码如下所示:
里面的IP地址:10.0.2.2,代表着手机模拟器本地的地址,相当于localhost,但不能使用localhost,或者127.0.0.1,因不是在PC机上测试,而是在手机AVD上测试之。
而UserBean.java,它就是一个JAVABEAN,代码如下所示:
注恴必须AndroidManifest.xml中加入如下代码,不然Android就不能访问web资源。
最终得到如下界面: