引用
1.发送json数据
public static String sendHttpUser(User user, String userBlspUrl, String tokenUsername, String tokenPassword) { log.info("=====================并联审批添加用户接口开始====================="); @SuppressWarnings("deprecation") HttpClient httpclient = new DefaultHttpClient(); String nowDate = sdf.format(new Date()); String token = TokenUtil.createToken(tokenUsername + nowDate + tokenPassword); String url = userBlspUrl + "?token=" + token; HttpPost httppost = new HttpPost(url); String strResult = ""; log.info("连接并联审批添加用户接口地址为:" + url); JSONObject jobj = new JSONObject(); jobj.put("loginName", user.getLoginName()); jobj.put("phone", user.getPhone()); jobj.put("email", user.getEmail()); jobj.put("mobile", user.getMobile()); jobj.put("no", user.getNo()); jobj.put("name", user.getName()); jobj.put("photo", user.getPhoto()); jobj.put("loginFlag", user.getLoginFlag()); jobj.put("delFlag", user.getDelFlag()); jobj.put("remarks", user.getRemarks()); jobj.put("createBy", UserUtils.getUser().getId()); jobj.put("updateBy", UserUtils.getUser().getId()); try { log.info("连接并联审批添加用户数据为:" + getStringFromJson(jobj)); StringEntity sEntity = new StringEntity(getStringFromJson(jobj),"utf-8"); sEntity.setContentEncoding("UTF-8"); sEntity.setContentType("application/json"); httppost.setEntity(sEntity); HttpResponse response = httpclient.execute(httppost); if (response.getStatusLine().getStatusCode() == 200) { /* 读返回数据 */ String conResult = EntityUtils.toString(response.getEntity()); JSONObject sobj = new JSONObject(); sobj = sobj.parseObject(conResult); String result = sobj.getString("result"); String code = sobj.getString("message"); if (result.equals("200")) { strResult += "成功"; } else { strResult += "失败," + code; } log.info("并联审批添加用户" + strResult); } else { String err = response.getStatusLine().getStatusCode() + ""; strResult += "失败:" + err; log.error("连接并联审批添加用户接口" + strResult); } } catch (ClientProtocolException e) { log.error("连接并联审批添加用户接口失败" + e.getMessage()); e.printStackTrace(); } catch (IOException e) { log.error("发送数据错误" + e.getMessage()); e.printStackTrace(); } log.info("=====================并联审批添加用户接口结束====================="); return strResult; } private static String getStringFromJson(JSONObject adata) { StringBuffer sb = new StringBuffer(); sb.append("{"); for (Object key : adata.keySet()) { sb.append("\"" + key + "\":\"" + adata.get(key) + "\","); } String rtn = sb.toString().substring(0, sb.toString().length() - 1) + "}"; return rtn; }
引用
2.接收jsons数据
@RequestMapping(value = "/userSync", method = RequestMethod.POST) public RespUserSync userSync(HttpServletRequest request, HttpServletResponse response, String token) { RespUserSync resp = new RespUserSync(); try { InputStream inputStream = request.getInputStream(); String json = getRequestBodyJson(inputStream); JSONObject sobj = new JSONObject(); sobj = sobj.parseObject(json); User user = JsonMapper.getInstance().fromJson(json, User.class); // TODO 1\数据加密对比校验 2\用户名密码获取并存储 3\返回结果RespUserSync String nowDate = sdf.format(new Date()); String wsbstoken = TokenUtil.createToken(matterTokenUsername + nowDate + matterTokenPassword); int count = 0; String msg = ""; if (StringUtils.isEmpty(token) || user == null) { resp.setResult(400); resp.setMessage("请求数据格式有误,请检测后再提交!"); } else if (token.equals(wsbstoken)) { // 根据loginName查询是否当前用户存在,不存在新增,存在修改 User oldUser = userService.getByLoginName(user); if (StringUtils.isEmpty(oldUser)) {// 新增 user.setId(IdGen.uuid()); user.setCompany(new Office("1")); user.setOffice(new Office("1")); user.setCreateDate(new Date()); user.setUpdateDate(new Date()); user.setPassword(SystemService.entryptPassword(defaultPassword)); user.setCreateBy(new User(sobj.getString("createBy"))); user.setUpdateBy(new User(sobj.getString("updateBy"))); count = userService.insert(user); } else {// 修改 user.setId(oldUser.getId()); user.setUpdateDate(new Date()); user.setCompany(oldUser.getCompany()); user.setPassword(oldUser.getPassword()); user.setOffice(oldUser.getOffice()); user.setUpdateBy(new User(sobj.getString("updateBy"))); count = userService.update(user); } if (count > 0) { resp.setResult(200); resp.setMessage("添加用户成功"); } else { msg = "添加用户失败失败!"; resp.setResult(400); resp.setMessage(msg); } } else { resp.setResult(400); resp.setMessage("Token验证失败,请核对后再提交!"); } } catch (Exception ex) { resp.setResult(400); resp.setMessage("请求失败:" + ex.toString()); } return resp; } private String getRequestBodyJson(InputStream inputStream) throws IOException { Reader input = new InputStreamReader(inputStream,"utf-8"); Writer output = new StringWriter(); char[] buffer = new char[1024 * 4]; int n = 0; while (-1 != (n = input.read(buffer))) { output.write(buffer, 0, n); } return output.toString(); }