• 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     }
  • 相关阅读:
    Vue学习笔记-2
    versionCompare 版本号比较工具
    Vue学习笔记-1
    工作机会
    PAT题目AC汇总(待补全)
    sqli-labs-master 第二关+第三关+第四关
    sqli-labs-master 盲注+第五关+第六关
    Java面向对象--equeal和==
    Java面向对象--object
    Java面向对象--成员变量的初始值
  • 原文地址:https://www.cnblogs.com/jackwuyongxing/p/4389071.html
Copyright © 2020-2023  润新知