Android与服务端网络通信之XML格式
来源:互联网 发布:imagelab for mac 编辑:程序博客网 时间:2024/06/04 19:53
public class VideoNewsService
{
/*获取服务端资讯*/
public static List<News> getLastNews() throws Exception{
String path="http://192.168.1.100:8080/videonews/ListServlet";
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setConnectionTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200)
{
InputStream inStream = conn.getInputStream();
return parseXML(inStream);
}
return null;
}
/*解析服务器返回的xml数据*/
private static List<News> parseXML(InputStream inStream)
{
List<News> newses =new ArrayList<News>();
News news=null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream,"UTF-8");
int event=parser.getEventType();
while(event != XmlPullParser.END_DOCUMENT)
{
switch(event)
{
case XmlPullParser.START_TAG:
if("news".equals(parser.getName()))
{
int id=new Integer(parser.getAttributeValue(0));
news = new News();
news.setId(id);
}else if("title".equals(parser.getName()))
{
news.setTitle(parser.nextText());
}
else if("timelength".equals(parser.getName()))
{
news.setTimelength(new Integer(parser.nextText()));
}
break;
case XmlPullParser.END_TAG:
if("news".equals(parseer.getName()))
newses.add(news);
news=null;
}
event = parser.next();
}
return newses;
}
}
main.xml
<ListView
android:layout_width="fill_parent";
android:layout_height="wrap_content"
android:id="@+id/listView"
/>
item.xml
<LinearLayout
<TextView
android:id="@+id/title"
>
<TextView
android:id="@+id/timelength"
>
</LinearLayout>
Android mainActivity:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listview = (ListView) this.findViewById(R.id.listview);
List<News> videos =VideoNewsService.getLastNews();
List<HashMap<String , Object>> data =new ArrayList<HashMap<String,Object>>();
for(News news : videos)
{
HashMap<String,Object> item=new HashMap<String,Object>();
item.put("id",news.getId());
item.put("title",news.getTitle());
item.put("timelength",news.getTimelength());
data.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this,data,R.layout.item,new String[]{"title","timelength"},new int[]{R.id.title,R.id.timelength});
listView.setAdapter(adapter);
服务端
Web技术
1,新建servlet
public class ListServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
private VideoNewsService service =new VideoNewsServiceBean();
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
List<News> videos = service.getLastNews();
request.setAttribute("videos",videos);
request.getRequestDispather("/WEB-INF/page/videonews.jsp").forward(request,response);
}
}
News类
public class News
{
private Integer id;
private String title;
private Integer timelength;
public News(){}
public News(Integer id, String title,Integer timelength)
{
this.id= id;
this.title=title;
this.timelength=timelength;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id=id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title=title;
}
public Integer getTimelength()
{
return timelength;
}
public void setTimelength(Integer timelength)
{
this.timelength = timelength;
}
}
VideoNewsServiceBean //实现类
public class VideoNewsServiceBean implements VideoNewsService
{
public List<News> getLastNews()
{
List<News> newses = new ArrayList<News>();
newses.add(new News(35,"喜洋洋",90));
newses.add(new News(12,"灰太狼",30));
newses.add(new News(56,"红太狼",40));
return newses;
}
}
public interface VideoNewsService
{
/*获取视频资讯*/
public List<News> getLastNews();
}
videonews.jsp
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="C"%><?xml version="1.0" encoding="UTF-8"?>
<videonews><c:forEach item="${videos}" var="video">
<news id="${video.id}">
<title>${video.title}</title>
<timelength>${video.timelength}</timelength>
</news></c:forEach>
</videonews>
{
/*获取服务端资讯*/
public static List<News> getLastNews() throws Exception{
String path="http://192.168.1.100:8080/videonews/ListServlet";
URL url=new URL(path);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setConnectionTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode() == 200)
{
InputStream inStream = conn.getInputStream();
return parseXML(inStream);
}
return null;
}
/*解析服务器返回的xml数据*/
private static List<News> parseXML(InputStream inStream)
{
List<News> newses =new ArrayList<News>();
News news=null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream,"UTF-8");
int event=parser.getEventType();
while(event != XmlPullParser.END_DOCUMENT)
{
switch(event)
{
case XmlPullParser.START_TAG:
if("news".equals(parser.getName()))
{
int id=new Integer(parser.getAttributeValue(0));
news = new News();
news.setId(id);
}else if("title".equals(parser.getName()))
{
news.setTitle(parser.nextText());
}
else if("timelength".equals(parser.getName()))
{
news.setTimelength(new Integer(parser.nextText()));
}
break;
case XmlPullParser.END_TAG:
if("news".equals(parseer.getName()))
newses.add(news);
news=null;
}
event = parser.next();
}
return newses;
}
}
main.xml
<ListView
android:layout_width="fill_parent";
android:layout_height="wrap_content"
android:id="@+id/listView"
/>
item.xml
<LinearLayout
<TextView
android:id="@+id/title"
>
<TextView
android:id="@+id/timelength"
>
</LinearLayout>
Android mainActivity:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listview = (ListView) this.findViewById(R.id.listview);
List<News> videos =VideoNewsService.getLastNews();
List<HashMap<String , Object>> data =new ArrayList<HashMap<String,Object>>();
for(News news : videos)
{
HashMap<String,Object> item=new HashMap<String,Object>();
item.put("id",news.getId());
item.put("title",news.getTitle());
item.put("timelength",news.getTimelength());
data.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this,data,R.layout.item,new String[]{"title","timelength"},new int[]{R.id.title,R.id.timelength});
listView.setAdapter(adapter);
服务端
Web技术
1,新建servlet
public class ListServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
private VideoNewsService service =new VideoNewsServiceBean();
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
List<News> videos = service.getLastNews();
request.setAttribute("videos",videos);
request.getRequestDispather("/WEB-INF/page/videonews.jsp").forward(request,response);
}
}
News类
public class News
{
private Integer id;
private String title;
private Integer timelength;
public News(){}
public News(Integer id, String title,Integer timelength)
{
this.id= id;
this.title=title;
this.timelength=timelength;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id=id;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title=title;
}
public Integer getTimelength()
{
return timelength;
}
public void setTimelength(Integer timelength)
{
this.timelength = timelength;
}
}
VideoNewsServiceBean //实现类
public class VideoNewsServiceBean implements VideoNewsService
{
public List<News> getLastNews()
{
List<News> newses = new ArrayList<News>();
newses.add(new News(35,"喜洋洋",90));
newses.add(new News(12,"灰太狼",30));
newses.add(new News(56,"红太狼",40));
return newses;
}
}
public interface VideoNewsService
{
/*获取视频资讯*/
public List<News> getLastNews();
}
videonews.jsp
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="C"%><?xml version="1.0" encoding="UTF-8"?>
<videonews><c:forEach item="${videos}" var="video">
<news id="${video.id}">
<title>${video.title}</title>
<timelength>${video.timelength}</timelength>
</news></c:forEach>
</videonews>
0 0
- Android与服务端网络通信之XML格式
- Android与服务端通信之JSON格式
- Android网络编程之TCP通信----简单客户端与服务端通信
- Android网络编程之UDP通信----简单客户端与服务端通信
- Android之与服务端通信一
- Android访问网络系列之--服务端返回XML或JSON格式数据,Android 进行解析并显示
- Android网络通信中数据传输的XML格式使用
- android如何与服务端通信
- IOS-18-网络通信之Socket通信中服务端与客户端的实现
- android 网络通信之HttpURLConnection与HttpClient
- iOS 开发 网络编程与通信之XML解析
- Android网络通信之解析XML以及解析JSON
- Android网络编程之解析XML格式数据
- Android访问网络:服务端返回XML或JSON格式数据,Android 进行解析并使用ListView显示
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- android 蓝牙客户端与服务端通信
- Java中的堆和栈
- php学习笔记4
- ios--视图的基本概念
- 阶段总结 ———— shell如何访问mysql
- nginx error
- Android与服务端网络通信之XML格式
- 自己搭网站太累了。。
- Amazon的云服务简介
- jstl标签大汇总
- 看书笔记--C++
- linux系统学习之cd ,ls常用命令
- create a deployment package for Webservice in Visual Studio
- JSTL的相关语法入门
- CString&CStringA&CStringW之间的相互转换