使用RestTemplate发送post和delete请求
2016-08-11 17:55
686 查看
使用RestTemplate发送post和delete请求,其中delete请求需要特别支持eg:
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory() {
@Override
protected HttpUriRequest createHttpUriRequest(HttpMethod httpMethod, URI uri) {
if (HttpMethod.DELETE == httpMethod) {
return new HttpEntityEnclosingDeleteRequest(uri);
}
return super.createHttpUriRequest(httpMethod, uri);
}
});
HttpHeaders headers = new HttpHeaders();
MediaType type2 = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type2);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
JSONObject jsonObj = new JSONObject();
value = DigestUtils.sha1Hex(DigestUtils.sha1Hex(value));
jsonObj.put("field", field2);
jsonObj.put("value", value);
jsonObj.put("reportTime", (new Date()).getTime());
jsonObj.put("type", "OFFLINE");
HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
JSONObject res = new JSONObject();
if(REPORT_ADD.equals(type)){
res = restTemplate.postForObject(url, formEntity, JSONObject.class);
}else if(REPORT_DELETE.equals(type)){
ResponseEntity<JSONObject> exchange = restTemplate.exchange(url, HttpMethod.DELETE, formEntity, JSONObject.class);
res = exchange.getBody();
}
if(res.get("status_code") != null && STATE_CODE_SUCESS.equals(res.get("status_code").toString().trim())){
}else{
if(res.get("status_code") == null){
msg = "未获取到返回状态码!";
}else if(STATE_CODE_ERROR.equals(res.get("status_code").toString().trim())){
msg = "系统错误!";
}else if(STATE_CODE_INVALID.equals(res.get("status_code").toString().trim())){
msg = "该接口未授权!";
}else if(STATE_CODE_NO_MATCH.equals(res.get("status_code").toString().trim())){
msg = "未匹配到(未查找到对应项)!";
}else if(STATE_CODE_REQUEST_FORMAT_ERROR.equals(res.get("status_code").toString().trim())){
msg = "请求参数格式校验失败!";
}
}
return msg;
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory() {
@Override
protected HttpUriRequest createHttpUriRequest(HttpMethod httpMethod, URI uri) {
if (HttpMethod.DELETE == httpMethod) {
return new HttpEntityEnclosingDeleteRequest(uri);
}
return super.createHttpUriRequest(httpMethod, uri);
}
});
HttpHeaders headers = new HttpHeaders();
MediaType type2 = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type2);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
JSONObject jsonObj = new JSONObject();
value = DigestUtils.sha1Hex(DigestUtils.sha1Hex(value));
jsonObj.put("field", field2);
jsonObj.put("value", value);
jsonObj.put("reportTime", (new Date()).getTime());
jsonObj.put("type", "OFFLINE");
HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
JSONObject res = new JSONObject();
if(REPORT_ADD.equals(type)){
res = restTemplate.postForObject(url, formEntity, JSONObject.class);
}else if(REPORT_DELETE.equals(type)){
ResponseEntity<JSONObject> exchange = restTemplate.exchange(url, HttpMethod.DELETE, formEntity, JSONObject.class);
res = exchange.getBody();
}
if(res.get("status_code") != null && STATE_CODE_SUCESS.equals(res.get("status_code").toString().trim())){
}else{
if(res.get("status_code") == null){
msg = "未获取到返回状态码!";
}else if(STATE_CODE_ERROR.equals(res.get("status_code").toString().trim())){
msg = "系统错误!";
}else if(STATE_CODE_INVALID.equals(res.get("status_code").toString().trim())){
msg = "该接口未授权!";
}else if(STATE_CODE_NO_MATCH.equals(res.get("status_code").toString().trim())){
msg = "未匹配到(未查找到对应项)!";
}else if(STATE_CODE_REQUEST_FORMAT_ERROR.equals(res.get("status_code").toString().trim())){
msg = "请求参数格式校验失败!";
}
}
return msg;
相关文章推荐
- 聊一聊前端存储那些事儿
- Android开发之Fragment懒加载技术
- 链栈
- 【51Nod】1021 - 石子归并(区间dp & 四边形不等式优化)
- 数组-在Shell脚本中的基本使用介绍
- linux配置使用外部smtp发送邮件
- HDU 5831 Rikka with Parenthesis II (贪心) -2016杭电多校联合第8场
- Spring面试题集
- 顺序栈
- VC编程操作word2010生成表格
- PHP学习笔记总结 转
- AOS 自动生成代码(二) Dao生成
- Java 中的Unicode与PrintWriter
- 日常一水
- 链表
- C++对象的动态建立和释放
- Java中Enumeration接口讲解
- 前端人应该知道的排序知识
- 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow
- Android studio清除项目中无用的资源