zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    循序渐进学Python 1 安装与入门
    常用yum命令小结
    为CentOS配置网易163的yum源
    PHP合并数组+与array_merge的区别
    让Docker功能更强大的10个开源工具
    Docker入门系列8
    Docker入门系列7 动态映射端口port mapping
    e 的由来
    ROS教程5 使用串口
    1 ROS+ 使用ORB_SLAM2进行全场定位
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/4389071.html
Copyright © 2011-2022 走看看