Android 网络编程---STRUTS2,JSON,HttpClient

来源:互联网 发布:初级数据分析师面试题 编辑:程序博客网 时间:2024/06/02 00:11

     在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资源。

 

    

 

 

 

最终得到如下界面:

 

 

 

 

 

 

 

 

 

原创粉丝点击