• Jar包引入
  • 通用类
  • 方法调用示例

Jar包引入

导入JSON包
示例中引用的版本为 json-20190722.jar

通用类

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;import org.json.JSONArray;
import org.json.JSONObject;public class InvokeHelper {//接口请求地址public static String POST_K3CloudURL = "";// Cookie 值private static String CookieVal = null;private static Map<String,String> map = new HashMap<String,String>();static {map.put("Save","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc");map.put("View","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc");map.put("Submit","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc");map.put("Audit","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc");map.put("UnAudit","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.UnAudit.common.kdsvc");map.put("StatusConvert","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.StatusConvert.common.kdsvc");map.put("ExecuteBillQuery","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc");map.put("ExcuteOperation","Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExcuteOperation.common.kdsvc");}/*** 构造方法* @param POST_K3CloudURL*/public InvokeHelper(String POST_K3CloudURL){InvokeHelper.POST_K3CloudURL = POST_K3CloudURL;}/*** 发送HTTP请求,获取接口返回信息* @param url 请求的URL地址* @param paras 请求的JSON* @return 接口返回信息* @throws Exception 抛出的异常*/private static HttpURLConnection initUrlConn(String url, JSONArray paras)throws Exception {URL postUrl = new URL(POST_K3CloudURL.concat(url));HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();if (CookieVal != null) {connection.setRequestProperty("Cookie", CookieVal);}if (!connection.getDoOutput()) {connection.setDoOutput(true);}connection.setRequestMethod("POST");connection.setUseCaches(false);connection.setInstanceFollowRedirects(true);connection.setRequestProperty("Content-Type", "application/json");DataOutputStream out = new DataOutputStream(connection.getOutputStream());UUID uuid = UUID.randomUUID();int hashCode = uuid.toString().hashCode();JSONObject jObj = new JSONObject();jObj.put("format", 1);jObj.put("useragent", "ApiClient");jObj.put("rid", hashCode);jObj.put("parameters", chinaToUnicode(paras.toString()));jObj.put("timestamp", new Date().toString());jObj.put("v", "1.0");out.writeBytes(jObj.toString());out.flush();out.close();return connection;}/*** 登录信息* @param dbId 账套ID* @param user 用户名* @param pwd 密码* @param lang 语言* @return* @throws Exception*/public static boolean Login(String dbId, String user, String pwd, int lang)throws Exception {boolean bResult = false;String sUrl = "Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc";JSONArray jParas = new JSONArray();jParas.put(dbId);// 帐套IdjParas.put(user);// 用户名jParas.put(pwd);// 密码jParas.put(lang);// 语言HttpURLConnection connection = initUrlConn(sUrl, jParas);// 获取CookieString key = null;for (int i = 1; (key = connection.getHeaderFieldKey(i)) != null; i++) {if (key.equalsIgnoreCase("Set-Cookie")) {String tempCookieVal = connection.getHeaderField(i);if (tempCookieVal.startsWith("kdservice-sessionid")) {CookieVal = tempCookieVal;break;}}}BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line;System.out.println(" ============================= ");System.out.println(" Contents of post request ");System.out.println(" ============================= ");while ((line = reader.readLine()) != null) {String sResult = new String(line.getBytes(), "utf-8");System.out.println(sResult);bResult = line.contains("\"LoginResultType\":1");}System.out.println(" ============================= ");System.out.println(" Contents of post request ends ");System.out.println(" ============================= ");reader.close();connection.disconnect();return bResult;}// Savepublic static String Save(String formId, String content) throws Exception {return Invoke("Save", formId, content);}// Viewpublic static void View(String formId, String content) throws Exception {Invoke("View", formId, content);}// Submitpublic static String Submit(String formId, String content) throws Exception {return Invoke("Submit", formId, content);}// Auditpublic static String Audit(String formId, String content) throws Exception {return Invoke("Audit", formId, content);}// UnAuditpublic static void UnAudit(String formId, String content) throws Exception {Invoke("UnAudit", formId, content);}// StatusConvertpublic static void StatusConvert(String formId, String content)throws Exception {Invoke("StatusConvert", formId, content);}// ExecuteBillQuerypublic static String ExecuteBillQuery(String content) throws Exception {return Invoke("ExecuteBillQuery", content);}// ExcuteOperationpublic static String ExcuteOperation(String formId, String opNumber, String content) throws Exception {return Invoke("ExcuteOperation",formId, opNumber, content);}/*** 封装请求的接口请求数据* @param deal 单据处理类型* @param formId 单据ID* @param opNumber* @param content* @return* @throws Exception*/private static String Invoke(String deal, String formId, String opNumber, String content)throws Exception {String sUrl = map.get(deal).toString();JSONArray jParas = new JSONArray();jParas.put(formId);jParas.put(opNumber);jParas.put(content);HttpURLConnection connectionInvoke = initUrlConn(sUrl, jParas);BufferedReader reader = new BufferedReader(new InputStreamReader(connectionInvoke.getInputStream(), "UTF-8"));StringBuffer resultBuffer = new StringBuffer();String temp;while ((temp = reader.readLine()) != null) {resultBuffer.append(temp);}reader.close();connectionInvoke.disconnect();return resultBuffer.toString();}private static String Invoke(String deal, String content)throws Exception {String sUrl = map.get(deal).toString();JSONArray jParas = new JSONArray();jParas.put(content);HttpURLConnection connectionInvoke = initUrlConn(sUrl, jParas);BufferedReader reader = new BufferedReader(new InputStreamReader(connectionInvoke.getInputStream(), "UTF-8"));StringBuffer resultBuffer = new StringBuffer();String temp;while ((temp = reader.readLine()) != null) {resultBuffer.append(temp);}reader.close();connectionInvoke.disconnect();return resultBuffer.toString();}private static String Invoke(String deal, String formId, String content)throws Exception {String sUrl = map.get(deal).toString();JSONArray jParas = new JSONArray();jParas.put(formId);jParas.put(content);HttpURLConnection connectionInvoke = initUrlConn(sUrl, jParas);BufferedReader reader = new BufferedReader(new InputStreamReader(connectionInvoke.getInputStream(), "UTF-8"));StringBuffer resultBuffer = new StringBuffer();String temp;while ((temp = reader.readLine()) != null) {resultBuffer.append(temp);}reader.close();connectionInvoke.disconnect();return resultBuffer.toString();}/*** 把中文转成Unicode码** @param str* @return*/public static String chinaToUnicode(String str) {String result = "";for (int i = 0; i < str.length(); i++) {int chr1 = (char) str.charAt(i);if (chr1 >= 19968 && chr1 <= 171941) {// 汉字范围 \u4e00-\u9fa5 (中文)result += "\\u" + Integer.toHexString(chr1);} else {result += str.charAt(i);}}return result;}
}

方法调用示例

public static void main(String[] args) throws Exception {//Cloud接口地址InvokeHelper.POST_K3CloudURL = "http://localhost/k3cloud/";//Cloud账套IDString dbId = "5ea15c436120db";//Cloud登录名String uid = "demo";//Cloud密码String pwd = "666666";//语言 (2052表示中文)int lang = 2052;if (InvokeHelper.Login(dbId, uid, pwd, lang)) {System.out.println("-------------------------");System.out.println("Login success");System.out.println("-------------------------");//表单id (SAL_SaleOrder为销售订单)String formid="SAL_SaleOrder";//json数据String content="{\"CreateOrgId\": 0,\"Numbers\": [\"XSDD000023\"],\"Ids\": \"\",\"SelectedPostId\": 0,\"NetworkCtrl\":\"\" }";System.out.println(content);System.out.println("");//调用审核接口 并打印返回数据System.out.println(InvokeHelper.Audit(formid, content));//System.out.println(InvokeHelper.Submit(formid, content));}else{System.out.println("------------------");System.out.println("Login error");}}

JAVA调用K3Cloud WebApi接口相关推荐

  1. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解

    参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...

  2. Java调用第三方http接口 单点登录 HttpClient

    Java调用第三方http接口的方式 Java调用第三方接口示范 范例: 响应形式: 主逻辑: 访问此地址:http:// { cas }/cas/login?service=http://local ...

  3. Android系统JNI使用(JAVA调用C语言接口)一

    目录 第一篇:Android系统JNI使用(JAVA调用C语言接口)一 什么是JNI JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信主要是 ...

  4. java调用企业微信接口发送文件功能

    java调用企业微信接口发送文件功能 代码 结合几位大佬的代码后实现此功能:感谢大佬让我完成此功能的实现,如有侵权,立刻删除. 借鉴文章地址: java调用企业微信接口发送消息https://blog ...

  5. java调用短信接口实现发送短信

    java调用短信接口实现发送短信 1.下载接口文件 2.打开java文件夹 2.1获取jar包依赖 2.2获取代码模板 3.创建项目 3.1打开eclipse软件,创建一个动态的web项目 3.2导入 ...

  6. Java调用 新浪微博API 接口发微博,逐项讲解,绝对清晰

    转载自:http://www.myexception.cn/program/1930025.html Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰 最近要做个课程设计,使用微博控制树莓 ...

  7. Java调用webservice.asmx接口.

    直接上代码: 1 package utils; 2 3 import java.net.MalformedURLException; 4 import java.rmi.RemoteException ...

  8. java调用c视频接口_JAVA本地调用(JNI- java调用c)

    记录一下工作内容,对术语了解不多,暂且这样记着吧. java调用c 一.写jni的步骤如下: 1.创建java类,定义接口函数,使用native修饰: 2.将java类编译成class: 3.将cla ...

  9. java调用快递物流接口api

    接口地址:阿里云全球物流快递查询(单号识别) 登录阿里云进行购买,有免费试用次数,可以免费查询100次. 购买成功之后去阿里云 控制台→云市场→已购买服务 就能看自己的接口所需要的key. 然后jav ...

  10. Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰

    最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内 ...

最新文章

  1. 国防科技大学发布最新「3D点云深度学习」综述论文
  2. jre,jdk,jvm的关系
  3. 用力和应变片计算弹性模量_一种沿深度非均匀分布的残余应力测试计算方法与流程...
  4. 【赠书】新手速递!深度学习视频理解!
  5. Vue scoped CSS 与深度作用选择器 /deep/
  6. 信息化教学与计算机的关联性,信息化教学方法应用探索——以计算机基础课程为例.pdf...
  7. 1-3.监督学习(supervised learning)
  8. 详解 | 引起电源模块发热的4个主要原因
  9. homelede软路由设置方法_斐讯无线路由器怎么设置 斐讯无线路由器设置方法【详解】...
  10. react(87)--批量删除进行置空操作
  11. map的详解及常见面试题
  12. 2017.4.22 loli测试
  13. php函数方法属性吗,为什么PHP属性不允许使用函数?
  14. 【前端】相信你会用到的一篇笔记---CSS篇(2)
  15. 【电子相册制作软件】名编辑电子杂志大师教程 | 如何在翻页电子相册中添加动态的flash背景?
  16. 淘宝卖家过劳死VS跳楼死
  17. php版本微信公众号开发
  18. 关于机器学习,我总结了可能是目前最全面最无痛的入门路径和资源!
  19. binlog2sql 恢复工具使用
  20. 周三多《管理学—原理与方法》第七版笔记和课后习题答案

热门文章

  1. 企业邮箱和邮箱域名是什么意思?它们有什么区别?
  2. 腾讯视频怎么获得html代码,如何获取腾讯视频等九大视频网站的视频分享代码...
  3. windows server 2008 R2 SP1多国语言包官方下载
  4. 《东周列国志》第七十二回 棠公尚捐躯奔父难 伍子胥微服过昭关
  5. Linux中句柄是什么?
  6. 学校计算机和网络保密管理规定,计算机信息系统安全保密管理规定
  7. ubuntu硬盘序列号怎么查询_Ubuntu16.04中查看硬盘的型号和读取速度
  8. 软考中级网络工程师全面学习笔记第1版(近4万字)
  9. Hadoop与Hbase 安装下载
  10. 软件项目管理(SPM)课程总结及感想