http接口json发送

[quote]1.发送json数据[/quote]
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;
}

[quote]2.接收jsons数据[/quote]


@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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值