android 开发:Json的发送和接收

最近在搞一个android app,使用到和服务器的json交互技术。服务器端我是简单的使用servlet,来接收来自app的请求,处理json使用org.json这个jar包。

服务器端:

1. 将要发送的对象处理成JSONObject 或者 JSONArray对象,这样只要toString就可以变成JSON语句了。

  JSONArray JSONArr = reader.getNewsItemInJson(page);

2.设置响应头的内容类型为:text/json
        response.setContentType("text/json;charset=UTF-8");

3.将对象转化成字节数组,写入输出流
        response.getOutputStream().write(JSONArr.toString().getBytes());

android app端则使用普通的HTTP协议获取数据就行了,具体代码如下。

  

 1 public static String readJsonString(String urlStr){
 2         StringBuffer sb  = new StringBuffer();
 3         HttpURLConnection conn=null;
 4         try{
 5             URL url = new URL(urlStr);
 6             conn =(HttpURLConnection) url.openConnection();
 7             conn.setRequestMethod("GET");
 8             conn.setConnectTimeout(5000);
 9             conn.setDoInput(true);
10             if(conn.getResponseCode()==200){
11                 InputStream is = conn.getInputStream();
12                 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
13                 byte[] buffer = new byte[1024];
14                 int len=0;
15                 while(true){
16                     len = is.read(buffer);
17                     if(len==-1){
18                         break;
19                     }else {
20                         outputStream.write(buffer);
21                     }
22                 }
23                 byte[] result = outputStream.toByteArray();
24                 String str = new String(result, 0, result.length, "gbk");
25                 sb.append(str);
26                 outputStream.close();
27                 is.close();
28             }
29         }catch (Exception e){
30             e.printStackTrace();
31         }finally {
32             if(conn!=null) {
33                 conn.disconnect();
34             }
35         }
36         return sb.toString();
37     }

 

posted @ 2015-04-03 08:50  湖心北斗  阅读(1200)  评论(0编辑  收藏  举报