HttpClient之Post接口代码范例
核心包:
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
一:接收数据
json数据格式如下:
1、单一对象型:
a、数据格式

b、接口java(核心)代码范例
@ResponseBody
@RequestMapping(value = "/specialtyOA2DMS.do", method = RequestMethod.POST)
public JSONObject specialtyOA2DMS(@RequestBody JSONObject jsonObject, HttpServletRequest request)
throws GenericBusinessException {
JSONObject return_json = new JSONObject(); try {
//校验入参
if (StringTool.isEmpty(jsonObject.toString())) {
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参错误"); return return_json;
}
//校验入参单头不能为空
if(StringTool.isEmpty(jsonObject.getString("APPLY_DATE")) || StringTool.isEmpty(jsonObject.getString("OA_FORM_NO")) || StringTool.isEmpty(jsonObject.getString("SPECIALTY_LINE"))){
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参必填项存在空值(OA_FORM_NO-OA流程单号;APPLY_DATE-申请日期)"); return return_json;
} else {
String oaFormNoc = (String)jsonObject.getString("OA_FORM_NO");//OA流程单号 //校验入参单身数据
JSONArray specialtyLine = jsonObject.getJSONArray("SPECIALTY_LINE");
if(null != specialtyLine && specialtyLine.size()>0){
for(Object object : specialtyLine){
JSONObject obj = (JSONObject)object;
String sapContractNo = (String)obj.getString("SAP_CONTRACT_NO");//SAP合同编号
String prodCode = (String)obj.getString("SPECIALTY_PROD_CODE");//特制品编码
String unit = (String)obj.getString("SPECIALTY_PROD_UNIT");//单位
String qty = (String)obj.getString("SPECIALTY_PROD_QTY");//数量
//必填不能为空
if(StringTool.isEmpty(sapContractNo) || StringTool.isEmpty(prodCode) || StringTool.isEmpty(unit) || StringTool.isEmpty(qty)){
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参必填项存在空值(SAP_CONTRACT_NO-SAP合同编号/SPECIALTY_PROD_CODE-特制品编码/SPECIALTY_PROD_UNIT-单位/SPECIALTY_PROD_QTY-申请数量)"); return return_json;
} }
return_json.put("RESULT_STATUS", "S");
return_json.put("RESULT_REASON", "成功");
return return_json;
} else {
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参错误"); return return_json;
}
} } catch(Exception e){
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参错误");
return return_json;
} return return_json;
}
2、对象对象数组型:
a、数据格式

b、接口java(核心)代码范例
@ResponseBody
@RequestMapping(value = "/specialtySAP2DMS.do", method = RequestMethod.POST)
public JSONObject specialtySAP2DMS(@RequestBody JSONObject[] jsonObject, HttpServletRequest request)
throws GenericBusinessException {
JSONObject return_json = new JSONObject();
SapImportData sapData = new SapImportData();
List<SpecialtyProduct> specialtyProductList = new ArrayList<SpecialtyProduct>(); try {
//校验入参
if(null != jsonObject && (jsonObject.length)>0){
for(JSONObject jsonObj : jsonObject){
SpecialtyProduct specialtyProduct = new SpecialtyProduct();
String prodCode = "";//物料编号
String prodDesc = "";//物料描述
String prodFlag = "";//标识
String prodRemark = "";//说明
String prodIscontr = "";//是否进行数量管控
if(StringTool.isEmpty(jsonObj.getString("PROD_CODE"))){
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参必填项存在空值(PROD_CODE-物料编号)");
this.sapLog(sapData, "", "参数为空", "入参必填项存在空值(PROD_CODE-物料编号)","specialtySAP2DMS.do");
return return_json;
} else {
prodCode = (String)jsonObj.getString("PROD_CODE");//物料编号
if(StringTool.isNotEmpty(jsonObj.getString("PROD_DESC"))){
prodDesc = (String)jsonObj.getString("PROD_DESC");
}
if(StringTool.isNotEmpty(jsonObj.getString("PROD_FLAG"))){
prodFlag = (String)jsonObj.getString("PROD_FLAG");
}
if(StringTool.isNotEmpty(jsonObj.getString("PROD_REMARK"))){
prodRemark = (String)jsonObj.getString("PROD_REMARK");
}
if(StringTool.isNotEmpty(jsonObj.getString("PROD_ISCONTR"))){
prodIscontr = (String)jsonObj.getString("PROD_ISCONTR");
}
specialtyProduct.setProdCode(prodCode);
specialtyProduct.setProdDesc(prodDesc);
specialtyProduct.setProdFlag(prodFlag);
specialtyProduct.setProdRemark(prodRemark);
specialtyProduct.setProdIscontr(prodIscontr);
//处理开始时间和结束时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("GMT+8"));
Calendar c = Calendar.getInstance();
Timestamp ct = new Timestamp(c.getTimeInMillis());//创建时间
specialtyProduct.setCreatedDate(ct); //通用字段
specialtyProduct.setCreatorId(1l);
specialtyProduct.setCreatorName("admin");
specialtyProduct.setModiDate(ct);
specialtyProduct.setModifierId(1l);
specialtyProduct.setModifierName("admin");
specialtyProduct.setDataSource("SAP汇入");
specialtyProduct.setOwnerId(1l);
//添加到List集合中批量保存
specialtyProductList.add(specialtyProduct);
}
} return_json.put("RESULT_STATUS", "S"); return_json.put("RESULT_REASON", "成功");
return return_json; } else {
return_json.put("RESULT_STATUS", "F");
return_json.put("RESULT_REASON", "入参错误"); return return_json;
} } catch(Exception e){
return_json.put("RESULT_STATUS", "F"); return_json.put("RESULT_REASON", "接口处理错误");
return return_json;
} }
二:传输数据到接口
a、数据格式

或

b、接口java(核心)代码范例
@SuppressWarnings("unchecked")
@Override
public String AIReturnHttpPost(List<Object> ObjectList)throws GenericBusinessException{
String resultStr = "";
String entityJson = JSON.toJSONString(ObjectList);
String url = "";//填自己要调接口的路径
HttpClient client = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
StringEntity entity = new StringEntity(entityJson, "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httppost.setEntity(entity);
Character statusWL = new Character('F');
String message = "";
try {
HttpResponse result = client.execute(httppost);
String resData = EntityUtils.toString(result.getEntity(), "utf-8");
if(StringTool.isNotEmpty(resData)){
JSONObject jobg = JSON.parseObject(resData);
if(StringTool.isNotEmpty(jobg.get("code"))){
String code = jobg.get("code").toString();
if(StringTool.isNotEmpty(jobg.get("message"))){
message = jobg.get("message").toString();
}
if("200".equals(code)){
statusWL = new Character('T');
} else {
statusWL = new Character('F');
}
resultStr = resultStr+code+"-"+message;
}
}
} catch (Exception e) {
message = "处理接口异常";
e.printStackTrace();
}
return resultStr;
}
HttpClient之Post接口代码范例的更多相关文章
- C# 7.0 新功能代码范例
随着新版本的IDE Visual Studio 15 紧锣密鼓的开发中,2016年8月24日,微软发布了与之配套的C# 7.0 preview 的新特性. 其主要特性有: 内联声明out变量 (Out ...
- Java认证:JavaRunnable线程编写接口代码
Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...
- NSDate常用代码范例
NSDate常用代码范例 NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建N ...
- 最准确的单点登录SSO图示和讲解(有代码范例)|手把手教做单点登录(SSO)系列之二
写第一篇博客<手把手教做单点登录(SSO)系列之一:概述与示例>,就获得了园子里朋友们热情的评论和推荐,感谢各位. 我那篇文章同时发了CSDN和博客园.对比一下,更感受到博客园童鞋们的技术 ...
- php短信接口代码
这篇文章主要为大家详细介绍了php短信接口代码,php短信发送.php批量发送.php获取余额等代码,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内 ...
- HttpClient方式调用接口的实例
使用HttpClient的方式调用接口的实例. public class TestHttpClient { public static void main(String[] args) { // 请求 ...
- 我的第一个python web开发框架(33)——接口代码重构
前面ORM模块我们已经完成了开发,接下来要做的就是对项目代码进行重构了.因为对底层数据库操作模块(db_helper.py)进行了改造,之前项目的接口代码全都跑不起来了. 在写ORM模块时,我们已经对 ...
- Swagger结合mustache模板生成后台接口代码、以及前后台建模代码
之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2: 但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一 ...
- 单点登录SSO图示和讲解(有代码范例)转帖
完整的代码范例已完成,因和本文时序图严格对照,注释整理还需要一些工作,完成后将在下一篇放出.大家下载配置后,本地跑起来会是图一动画所示的运行效果,敬请期待. 敢说最准确,因为: 我严格对照所画时序图的 ...
随机推荐
- 经常出现在python中的错误和异常处理
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://t.cn/A6Zvjdun 使用try except处理异常 上面的代码中,被除数是0,会引发ZeroDivisio ...
- E - Travel by Car
连接https://atcoder.jp/contests/abc143/tasks/abc143_e 题目大意: 在一个无向图中,当前的油量为L,给出q个问题,判断从a到b需要多少加几次油,路上每个 ...
- mysql数据库深入学习
mysql 数据库 一.数据库介绍 1.关系型数据库的特点 二维表 典型产品Oracle传统企业,MySQL是互联网企业 数据存取是通过SQL 最大特点,数据安全性方面强(ACID) 2.NoSQ ...
- JMeter分布式压测实战(2020年清明假期学习笔记)
一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...
- 详解 TreeMap
(有关Map集合的基本性质,请观看本人博文-- <详解 Map集合>) TreeMap: 特点: TreeMap 键不允许插入null 键的底层数据结构是红黑树,可保证键的排序和唯一性 线 ...
- [V&N2020 公开赛] Web misc部分题解
0x00 前言 写了一天题目,学到了好多东西, 简单记录一下 0x01 Web HappyCTFd 直接使用网上公开的cve打: 解题思路:先注册一个admin空格账号,注意这里的靶机无法访问外网,邮 ...
- shiro:加密及密码比对器(三)
基于[自定义remle(二)]项目增加加密功能 1:数据库t_user表增加一列(盐) 增加字段:salt CREATE TABLE `t_user` ( `id` int(11) NOT NULL ...
- pytorch 中模型的保存与加载,增量训练
让模型接着上次保存好的模型训练,模型加载 #实例化模型.优化器.损失函数 model = MnistModel().to(config.device) optimizer = optim.Adam( ...
- amba H2平台用PWM控制LCD背光
ambarella H2系列Soc的GPIO口能作PWM使用的个数有限(GPIO0-GPIO3),从PRM里GPIO: Function Selection章节可以得到如何配置GPIO为PWM功能. ...
- Unity 游戏框架搭建 2019 (三十六~三十八) partial与public
在上一篇,我们把菜单的顺序从头到尾整理了一遍.在整理菜单顺序的过程中,记录了一个要做的事情. 要做的事情: (完成) 备份:导出文件,并取一个合理的名字. 整理完菜单顺序后,学习新的知识,解决随着示例 ...