今天学习从网上获得数据,以xml文件输出。流程:android客户端 -----已经开发好的CRM(220.113.15.23) -----[客户资料]--à屏幕
用的是struts1.3的环境
1.搭建环境
1.web.xml配置struts servlet
2.添加jar
3.复制struts-config.xml
环境搞定后,新建jsp文件,写好文件头:<?xml version="1.0" encoding="UTF-8"?> 注意
接着新建一个ContactAction
最后配置struts-config.xml文件
新建contact.jsp文件,得到数据
访问路径,测试得到的数据,以验证是否正确,若正确的话,第一步完成
下面是Android应用
2 .①.设计要显示的界面
②.新建service,可以调用
关键代码:
String path = “http://192.168.1.100:8080/crm/contacts.do”;
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setConnectionTimeout(5*1000);
conn.setRequestMethod(“POST”);
return conn.getInputStream();
在该类中还应该新建sax解析方法,解析文档,保存数据
③.新建android测试类,以日志形式打印出xml文件中的数据
3.应用HttpURLConnection对象,我们可以向网络发送请求参数.下面以POST发送为例,写一些关键代码点
Map<String, String> params = new HashMap<String, String>();
params.put("age", "22");
params.put("name", "浪淘沙");
StringBuilder params = new StringBuilder();
for(Map.Entry<String, String> entry : params.entrySet()){
params.append(entry.getKey());
params.append("=").append(URLEncoder.encode(entry.getValue(), "UTF-8"));
params.append("&");
}
if (params.length() > 0) params.deleteCharAt(params.length() - 1);
byte[] data = params.toString().getBytes();
4. 为应用添加新的Activity
①:新建一个继承Activity的类
②:需要在功能清单AndroidManifest.xml文件中添加进上面Activity配置代码
打开新的Activity,不传递参数
通过意图打开Activity,Intent,用于激活Activity的,在组件之间传递数据
在新的Activity中接收前面Activity传递过来的参数:
添加参数的另一种方法:Bundle
Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法, putXxx()用于往Bundle对象放入数据,getXxx()方法用于从Bundle对象里获取数据。Bundle的内部实际上是使用了HashMap<String, Object>类型的变量来存放putXxx()方法放入的值:
5. Intent过滤器
Android鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、 服务和广播接收器。
Intent可以划分成显式意图和隐式意图。