Android HttpURLConnection服务器POST上传数据
2017-06-16 20:16
344 查看
本文中使用HttpURLConnection与服务器通讯,json数据的转换使用阿里的fastjson,快速简单,不废话,代码说话。
其中我把通信代码写成了函数,由于之前是给心电数据上传写的例程 signalNum 为心电的导联数,去掉不影响通信。例程中模拟了正弦波数据上传,要想用在自己代码中,还需要归整为一个类。
public void HttpURLsend(int signalNum) { URL url = null; String user_id = "e82423d4ecbe4d36bed032c134d7073a"; //用户ID String target = "http://***.**.*.***:8080/homehealth/app/user/" + user_id + "/ecgsegment";//*号为服务器ID地址 short raw_short; //定义心电数据存放数组 StringBuilder temp = new StringBuilder(); //存放要上传的json数据
int statusCode = -1; //上传失败成功标记
InputStream in = null; //数据输出流 BufferedReader rd = null; HttpURLConnection urlConn = null; byte[] raw = new byte[10 * 250 * 3]; //模拟正弦波数据 for (int i = 0; i < raw.length / 2; i++) { raw_short = (short) ((Math.sin(i * Math.PI / 90) + 1) * 50); raw[2 * i] = (byte) (raw_short & 0xff); raw[2 * i + 1] = (byte) (raw_short >> 8); } params = new HashMap<>(); //以键值对的方式存储数据 Date startTime = null; //获取时间,并转格式 try { startTime = DateUtils.parseDate("2017-02-08 14:00:39 001", DateUtils.SDF_yyyy_MM_dd_HH_mm_ss_SSS); } catch (ParseException e) { e.printStackTrace(); } params.put("userId", user_id); //将要上传的数据和信息加入Map中 params.put("channel", signalNum); params.put("measureStartTime", startTime.getTime()); params.put("segmentTime", new Date()); params.put("deviceMac", "00:11:22:AA:BB:CC"); params.put("rawData", raw); params.put("type", 0); params.put("exceptionType", 32); params.put("curHeartrate", 60); try { StringBuffer paramStringBuffer = new StringBuffer(); if (params != null && params.size() > 0) { JSONObject obj = new JSONObject(params); paramStringBuffer.append(obj.toJSONString()); } url = new URL(target); urlConn = (HttpURLConnection) url.openConnection(); //创建一个http连接 urlConn.setRequestMethod("POST"); //指定post请求方式 urlConn.setDoInput(true); //向连接中写入数据 urlConn.setUseCaches(false); //禁止缓存 urlConn.setConnectTimeout(2 * 1000); urlConn.setReadTimeout(5 * 1000); // addSessionID(urlConn); if (paramStringBuffer.length() > 0){ byte[] data = paramStringBuffer.toString().getBytes(); urlConn.setRequestProperty("Content-Type", "application/json"); //设置内容类型 urlConn.setRequestProperty("Content-Length", data.length + "");// 注意是字节长度, 不是字符长度 urlConn.setDoOutput(true); //从连接中读取数据 DataOutputStream out = new DataOutputStream(urlConn.getOutputStream()); //获取输出流 out.write(data); out.flush(); //输出缓存 out.close(); } urlConn.getOutputStream().flush(); urlConn.getOutputStream().close(); // doCookie(httpURLConnection
); statusCode = urlConn.getResponseCode(); //获取上传服务器反馈 if(statusCode == 200){ in = urlConn.getInputStream(); //获取上传成功反馈 } else { in = urlConn.getErrorStream(); //获取上传失败反馈 } rd = new BufferedReader(new InputStreamReader(in)); String line = null; while ((line = rd.readLine()) != null) { // temp.append(line); //读取反馈信息,并log出信息 Log.w(TAG,"response_data" + " = " + line); } } catch (IOException e) { e.printStackTrace(); statusCode = -1; //若一次上传失败,可再次呼叫操作 } finally { if (rd != null){ try { rd.close(); } catch (IOException e) { e.printStackTrace(); } } if (in != null){ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if (urlConn != null){ urlConn.disconnect(); } } }
其中我把通信代码写成了函数,由于之前是给心电数据上传写的例程 signalNum 为心电的导联数,去掉不影响通信。例程中模拟了正弦波数据上传,要想用在自己代码中,还需要归整为一个类。
相关文章推荐
- Android使用HttpURLConnection进行POST请求,向服务器上传数据
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- android通过HttpURLConnection上传文件袋servlet服务器
- 【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目
- android通过HttpURLConnection上传文件袋servlet服务器
- Android程序开发通过HttpURLConnection上传文件到服务器
- Android使用HttpURLConnection和HttpClient请求服务器数据
- Android使用HttpUrlConnection请求服务器发送数据详解
- HttpUrlConnection Post提交数据到服务器、并得到服务器返回的数据
- Android使用HttpUrlConnection请求服务器发送数据详解
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android HttpURLConnection上传数据乱码问题
- Android使用HttpUrlConnection请求服务器发送数据详解
- Android HttpURLConnection(Get,Post方式)进行网络通信 获取数据和网络图片
- Android用httpURLConnection发送post网络请求并拿到数据
- Android中如何使用HttpURLConnection实现GET POST JSON数据与下载图片
- Android程序开发通过HttpURLConnection上传文件到服务器
- Android笔记之HttpURLConnection上传文件到服务器
- android重新学_网络3——采用HttpURLConnection提交数据到服务器