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图示和讲解(有代码范例)转帖
完整的代码范例已完成,因和本文时序图严格对照,注释整理还需要一些工作,完成后将在下一篇放出.大家下载配置后,本地跑起来会是图一动画所示的运行效果,敬请期待. 敢说最准确,因为: 我严格对照所画时序图的 ...
随机推荐
- Eclipse Hadoop源码阅读环境
一.解压hadoop src包到workspace目录.为加快下载jar包的速度,在eclipse的maven设置里将配置文件的路径设置正确,然后配置maven的settings.xml: <m ...
- search(6)- elastic4s-CRUD
如果我们把ES作为某种数据库来使用的话,必须熟练掌握ES的CRUD操作.在这之前先更正一下上篇中关于检查索引是否存在的方法:elastic4s的具体调用如下: //删除索引 val rspExists ...
- 详解 HashMap
本篇博文的知识点,在我们的日常生活中,应用十分广阔.比如:每个学生,都有自己的对应的学号.每一个公民,都有自己的身份证号- - 相信看到这里,有的同学基本上已经猜到了这个类的主要用途.那么,话不多说, ...
- .NET Core3.1总体预览和第一个Core程序的创建
小伙伴们大家好!欢迎阅读本贴,这里是常哥说编程的专栏,.NetCore已经出来一段时间了,很多小伙伴可能也开始了学习,但是.NetCore毕竟在学习上和我们常用的.NET Framework还是有很大 ...
- Java集合linkdList
LinkedList特有功能: A:添加功能 public void addFitst(Object e) public void addLast(Object e) B:获取功能 public Ob ...
- java 递归及其经典应用--求阶乘、打印文件信息、计算斐波那契数列
什么是递归 我先看下百度百科的解释: 一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的.用递归过程定义的函数,称为递归函数,例如连加.连乘及阶乘等.凡是递归的函数,都是可计算的,即 ...
- ORM之单表、多表操作
参考1 参考2 表与表之间的关系: 一对一(OneToOneField):一对一字段无论建在哪张关系表里面都可以,但是推荐建在查询频率比较高的那张表里面 一对多(ForeignKey):一对多字段建在 ...
- 一图解析MongoDB
了解MongoDB,这一张图就够了: 版权所有,转载请注明出处.
- [Batch脚本] if else 的格式
必须写成一行 ) else (,否则报错. if %abc%=="yes" ( ... ) else ( ... )
- Navicat premium15安装破解教程
Navicat premium15安装破解教程 注意:安装之前请卸载干净navicat,不要覆盖安装 1.去官网下载Navicat premium15的安装包 官网地址:https://www.nav ...