JAVA调用K3Cloud WebApi接口
- 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接口相关推荐
- Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...
- Java调用第三方http接口 单点登录 HttpClient
Java调用第三方http接口的方式 Java调用第三方接口示范 范例: 响应形式: 主逻辑: 访问此地址:http:// { cas }/cas/login?service=http://local ...
- Android系统JNI使用(JAVA调用C语言接口)一
目录 第一篇:Android系统JNI使用(JAVA调用C语言接口)一 什么是JNI JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信主要是 ...
- java调用企业微信接口发送文件功能
java调用企业微信接口发送文件功能 代码 结合几位大佬的代码后实现此功能:感谢大佬让我完成此功能的实现,如有侵权,立刻删除. 借鉴文章地址: java调用企业微信接口发送消息https://blog ...
- java调用短信接口实现发送短信
java调用短信接口实现发送短信 1.下载接口文件 2.打开java文件夹 2.1获取jar包依赖 2.2获取代码模板 3.创建项目 3.1打开eclipse软件,创建一个动态的web项目 3.2导入 ...
- Java调用 新浪微博API 接口发微博,逐项讲解,绝对清晰
转载自:http://www.myexception.cn/program/1930025.html Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰 最近要做个课程设计,使用微博控制树莓 ...
- Java调用webservice.asmx接口.
直接上代码: 1 package utils; 2 3 import java.net.MalformedURLException; 4 import java.rmi.RemoteException ...
- java调用c视频接口_JAVA本地调用(JNI- java调用c)
记录一下工作内容,对术语了解不多,暂且这样记着吧. java调用c 一.写jni的步骤如下: 1.创建java类,定义接口函数,使用native修饰: 2.将java类编译成class: 3.将cla ...
- java调用快递物流接口api
接口地址:阿里云全球物流快递查询(单号识别) 登录阿里云进行购买,有免费试用次数,可以免费查询100次. 购买成功之后去阿里云 控制台→云市场→已购买服务 就能看自己的接口所需要的key. 然后jav ...
- Java调用 新浪微博API 接口发微博,逐条讲解,绝对清晰
最近要做个课程设计,使用微博控制树莓派,树莓派再控制发光二极管的亮和灭,主要设计分两层,上层是用Java调用新浪微博API来实现对微博旳监听,当我的微博被回复时能够自动读取评论内容,并根据评论的指令内 ...
最新文章
- 国防科技大学发布最新「3D点云深度学习」综述论文
- jre,jdk,jvm的关系
- 用力和应变片计算弹性模量_一种沿深度非均匀分布的残余应力测试计算方法与流程...
- 【赠书】新手速递!深度学习视频理解!
- Vue scoped CSS 与深度作用选择器 /deep/
- 信息化教学与计算机的关联性,信息化教学方法应用探索——以计算机基础课程为例.pdf...
- 1-3.监督学习(supervised learning)
- 详解 | 引起电源模块发热的4个主要原因
- homelede软路由设置方法_斐讯无线路由器怎么设置 斐讯无线路由器设置方法【详解】...
- react(87)--批量删除进行置空操作
- map的详解及常见面试题
- 2017.4.22 loli测试
- php函数方法属性吗,为什么PHP属性不允许使用函数?
- 【前端】相信你会用到的一篇笔记---CSS篇(2)
- 【电子相册制作软件】名编辑电子杂志大师教程 | 如何在翻页电子相册中添加动态的flash背景?
- 淘宝卖家过劳死VS跳楼死
- php版本微信公众号开发
- 关于机器学习,我总结了可能是目前最全面最无痛的入门路径和资源!
- binlog2sql 恢复工具使用
- 周三多《管理学—原理与方法》第七版笔记和课后习题答案
热门文章
- 企业邮箱和邮箱域名是什么意思?它们有什么区别?
- 腾讯视频怎么获得html代码,如何获取腾讯视频等九大视频网站的视频分享代码...
- windows server 2008 R2 SP1多国语言包官方下载
- 《东周列国志》第七十二回 棠公尚捐躯奔父难 伍子胥微服过昭关
- Linux中句柄是什么?
- 学校计算机和网络保密管理规定,计算机信息系统安全保密管理规定
- ubuntu硬盘序列号怎么查询_Ubuntu16.04中查看硬盘的型号和读取速度
- 软考中级网络工程师全面学习笔记第1版(近4万字)
- Hadoop与Hbase 安装下载
- 软件项目管理(SPM)课程总结及感想