HttpURLconnection使用POST方式提交JSON数据给服务器

来源:互联网 发布:佳能软件下载 编辑:程序博客网 时间:2024/06/05 08:43

文章出处

最原始的味道,使用HttpURLconnection提交JSON数据给后台服务器。此处留下标记。


  • 将javabean对象转换成Json字符串。
  • 通过HttpUrlconnection提交数据。
  • getRequestCode返回415

1.javabean转换成JSON字符串工具类。这里使用Gson解析器,请各位自行添加依赖包。

//将JSON字符串转换成javabeanpublic static <T> T parsr(String json ,Class<T> tClass){        //判读字符串是否为空        if(TextUtils.isEmpty(json)){            return null;        }        if(gson==null){            gson = new Gson();        }        return gson.fromJson(json,tClass);    }    //将javabean转换成JSON字符串    public static String converJavaBeanToJson(Object obj){        if(obj == null){            return "";        }        if(gson == null){            gson = new Gson();        }        String beanstr = gson.toJson(obj);        if(!TextUtils.isEmpty(beanstr)){            return beanstr;        }        return "";    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  1. HttpUrlconnection部分
//发送JSON字符串 如果成功则返回成功标识。    public static String doJsonPost(String urlPath, String Json) {        // HttpClient 6.0被抛弃了        String result = "";        BufferedReader reader = null;        try {            URL url = new URL(urlPath);            HttpURLConnection conn = (HttpURLConnection) url.openConnection();            conn.setRequestMethod("POST");            conn.setDoOutput(true);            conn.setDoInput(true);            conn.setUseCaches(false);            conn.setRequestProperty("Connection", "Keep-Alive");            conn.setRequestProperty("Charset", "UTF-8");            // 设置文件类型:            conn.setRequestProperty("Content-Type","application/json; charset=UTF-8");            // 设置接收类型否则返回415错误            //conn.setRequestProperty("accept","*/*")此处为暴力方法设置接受所有类型,以此来防范返回415;          conn.setRequestProperty("accept","application/json");            // 往服务器里面发送数据            if (Json != null && !TextUtils.isEmpty(Json)) {                byte[] writebytes = Json.getBytes();                // 设置文件长度                conn.setRequestProperty("Content-Length", String.valueOf(writebytes.length));                OutputStream outwritestream = conn.getOutputStream();                outwritestream.write(Json.getBytes());                outwritestream.flush();                outwritestream.close();                Log.d("hlhupload", "doJsonPost: conn"+conn.getResponseCode());            }            if (conn.getResponseCode() == 200) {                reader = new BufferedReader(                        new InputStreamReader(conn.getInputStream()));                result = reader.readLine();            }        } catch (Exception e) {            e.printStackTrace();        } finally {            if (reader != null) {                try {                    reader.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return result;    }
阅读全文
0 0
原创粉丝点击