Android与服务端网络通信之XML格式

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值