网络通信Json版
路径后加参数,表示返回Json格式数据给Android应用。
http://192.168.1.100:8080/videonews/ListServlet?format=json
不加参数表示默认返回xml格式数据
public class VideoNewsService
{
/*获取服务端资讯*/
public static List<News> getJSONLastNews() throws Exception{
String path="http://192.168.1.100:8080/videonews/ListServlet?format=json";
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 parseJSON(inStream);
}
return null;
}
/*解析服务器返回的JSON数据*/
private static List<News> parseXML(InputStream inStream)
{
List<News> newses=new ArrayList<News>();
byte[] data = StreamTool.read(inStream);
String json = new String(data);
JSONArray array=new JSONArray(json);
for(int i=0;i<array.length();i++)
{
//取得Json对象
JSONObject jsonObject = array.getJSONObject(i);
News news=new News(jsonObject.getInt("id"),jsonObject.getString("title"), jsonObject.getInt("timelength"));
newses.add(news);
}
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.getJSONLastNews();
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
json格式
[{id:56,title:"XXX",timelength:90},{id:16,title:"XXb",timelength:30}]
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();
String format=request.getParameter("format");
if("json".equals(format))
{
StringBuilder builder = new StringBuilder();
builder.append('[');
for(News news : videos)
{
builder.append('{');
builder.append("id:").append(news.getId()).append(',');
builder.append("title:\"").append(news.getTitle()).append("\","); //反斜杠转义
builder.append("timelength:").append(news.getTimelength());
builder.append("},");
}
builder.deleteChatAt(builder.length() - 1);
builder.append(']');
request.setAttribute("json",builder.toString());
request.getRequestDispather("/WEB-INF/page/jsonvideonews.jsp").forward(request,response);
}else
{
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();
}
jsonvideonews.jsp
<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>${json}
路径后加参数,表示返回Json格式数据给Android应用。
http://192.168.1.100:8080/videonews/ListServlet?format=json
不加参数表示默认返回xml格式数据
public class VideoNewsService
{
/*获取服务端资讯*/
public static List<News> getJSONLastNews() throws Exception{
String path="http://192.168.1.100:8080/videonews/ListServlet?format=json";
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 parseJSON(inStream);
}
return null;
}
/*解析服务器返回的JSON数据*/
private static List<News> parseXML(InputStream inStream)
{
List<News> newses=new ArrayList<News>();
byte[] data = StreamTool.read(inStream);
String json = new String(data);
JSONArray array=new JSONArray(json);
for(int i=0;i<array.length();i++)
{
//取得Json对象
JSONObject jsonObject = array.getJSONObject(i);
News news=new News(jsonObject.getInt("id"),jsonObject.getString("title"), jsonObject.getInt("timelength"));
newses.add(news);
}
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.getJSONLastNews();
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
json格式
[{id:56,title:"XXX",timelength:90},{id:16,title:"XXb",timelength:30}]
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();
String format=request.getParameter("format");
if("json".equals(format))
{
StringBuilder builder = new StringBuilder();
builder.append('[');
for(News news : videos)
{
builder.append('{');
builder.append("id:").append(news.getId()).append(',');
builder.append("title:\"").append(news.getTitle()).append("\","); //反斜杠转义
builder.append("timelength:").append(news.getTimelength());
builder.append("},");
}
builder.deleteChatAt(builder.length() - 1);
builder.append(']');
request.setAttribute("json",builder.toString());
request.getRequestDispather("/WEB-INF/page/jsonvideonews.jsp").forward(request,response);
}else
{
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();
}
jsonvideonews.jsp
<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>${json}