1 /**

2 * 处理数据,在各自档案service实现逻辑3 *@param

4 *@return

5 */

6 public abstract MapsyncData (String result);7

8

9

10 /**

11 * 返回请求参数12 *@return

13 */

14 public abstractJsonArray getRequestData();15

16 /**

17 * 调用查询接口18 *@return

19 */

20 publicString getQueryAdress(){21 returnbaseProperties.getBillQueryUrl();22 }23

24

25 public boolean login() throwsException {26

27 boolean bResult = false;28 JsonArray jParas = newJsonArray();29 jParas.add(baseProperties.getDbId());30 jParas.add(baseProperties.getUserName());31 jParas.add(baseProperties.getPwd());32 jParas.add(baseProperties.getLang());33 HttpURLConnection connection =initUrlConn(baseProperties.getLoginUrl(), jParas);34 String key = null;35 for (int i = 1; (key = connection.getHeaderFieldKey(i)) != null; i++) {36 if (key.equalsIgnoreCase("Set-Cookie")) {37 String tempCookieVal =connection.getHeaderField(i);38 if (tempCookieVal.startsWith("kdservice-sessionid")) {39 CookieVal =tempCookieVal;40 break;41 }42 }43 }44

45 BufferedReader reader = new BufferedReader(newInputStreamReader(46 connection.getInputStream()));47 String line;48 while ((line = reader.readLine()) != null) {49 String sResult = new String(line.getBytes(), "utf-8");50 bResult = line.contains("\"LoginResultType\":1");51 }52 reader.close();53 connection.disconnect();54 returnbResult;55 }56

57 privateHttpURLConnection initUrlConn(String url, JsonArray paras)58 throwsException {59 URL postUrl = newURL(baseProperties.getBaseUrl().concat(url));60 HttpURLConnection connection =(HttpURLConnection) postUrl61 .openConnection();62 if (CookieVal != null) {63 connection.setRequestProperty("Cookie", CookieVal);64 }65 if (!connection.getDoOutput()) {66 connection.setDoOutput(true);67 }68 connection.setRequestMethod("POST");69 connection.setUseCaches(false);70 connection.setInstanceFollowRedirects(true);71 connection.setRequestProperty("Content-Type", "application/json");72 DataOutputStream out = newDataOutputStream(73 connection.getOutputStream());74

75 UUID uuid =UUID.randomUUID();76 int hashCode =uuid.toString().hashCode();77

78 JsonObject jObj = newJsonObject();79 jObj.addProperty("format", 1);80 jObj.addProperty("useragent", "ApiClient");81 jObj.addProperty("rid", hashCode);82 jObj.addProperty("parameters", chinaToUnicode(paras.toString()));83 jObj.addProperty("timestamp", newDate().toString());84 jObj.addProperty("v", "1.0");85

86 out.writeBytes(jObj.toString());87 out.flush();88 out.close();89

90 returnconnection;91 }92

93

94 /**

95 * 拉取数据并处理96 *@return

97 */

98 public Map datax() throwsException {99 login();100 HttpURLConnection connectionInvoke =initUrlConn(getQueryAdress(), getRequestData());101 BufferedReader reader = new BufferedReader(newInputStreamReader(102 connectionInvoke.getInputStream()));103 String line;104 String sResult = null;105 while ((line = reader.readLine()) != null) {106 sResult = new String(line.getBytes(), "utf-8");107 System.out.println(sResult);108 }109 if(sResult.contains("\"IsSuccess\":false")){110 ErrorEntity errorEntity = JSONUtil.toBean(JSONUtil.parseFromMap(objectMapper.readValue(sResult,Map.class)),ErrorEntity.class);111 throw new InfException(StrUtil.format("数据同步失败,当前同步类型为:{},返回信息为:{}",getCurrentType().getTitle(), errorEntity.getResult().getResponseStatus().getErrors().get(0).getMessage()));112 }113 reader.close();114 connectionInvoke.disconnect();115 Map syncMap =syncData(sResult);116 returnsyncMap;117 }118

119 public staticString chinaToUnicode(String str) {120 String result = "";121 for (int i = 0; i < str.length(); i++) {122 int chr1 = (char) str.charAt(i);123 if (chr1 >= 19968 && chr1 <= 171941) {124 result += "\\u" +Integer.toHexString(chr1);125 } else{126 result +=str.charAt(i);127 }128 }129 returnresult;130 }

java调用金蝶云接口_JAVA对接金蝶云星空7.3相关推荐

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

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

  2. java调用金蝶云接口_JAVA 版本--金蝶云星空新版WebAPI SDK--新手快速入门指南

    /******************************************************************************** ** 名称: JAVA 版本--金蝶 ...

  3. java调用微信红包接口_java调用微信现金红包接口的心得与体会

    这几天看了下以前写的有关微信支付的博客,看的人仍是挺多的,看了下留言不知道是由于博客写的不够细仍是什么状况,大多都找我要源码,我以为吧程序员仍是须要有这么一个思考的过程,所以没直接给源码,俗话说&qu ...

  4. java调用谷歌翻译接口_Java 调用 google 翻译

    1.Java代码 public class Translator { public String translate(String langFrom, String langTo, String wo ...

  5. java调节音量代码_用Java调用VC音量控制程序_java

    前言 本文通过java的Runtime接口来实现调用其他语言实现的应用程序,进而来实现对计算机硬件信息的监控和控制.本文是多媒体信息系统的一个部分,就是调整计算机音量. 使用VC编写音量控制程序 本控 ...

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

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

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

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

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

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

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

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

最新文章

  1. QT开发(五十)——QT串口编程基础
  2. 智能合约类代币EOS、BCH、Tezos很有可能会超越BTC
  3. python爬虫今日头条街拍美图开发背景_分析Ajax请求并抓取今日头条街拍美图:爬取详情页的url与实际页面上显示不符...
  4. 用友BQ商业智能平台——图表功能
  5. 记事本状态栏不会自动_如何在记事本中同时启用状态栏和自动换行
  6. const 常量_条款03:尽可能使用const
  7. Container.ItemIndex 获取reapeater行号
  8. 手机不支持温度传感器为什么鲁大师可以检测手机电池的温度?
  9. C核心技术手册(二十八)
  10. 常用应用层传输协议和端口
  11. Django表单提交数据与网页跳转
  12. HTML5网页语音识别功能演示
  13. powerbi 线性回归_微软Power BI 每月功能更新系列——11月Power BI 新功能学习
  14. 数据库索引是什么,它的作用是什么?
  15. web前端培训Node.js和JavaScript的关系
  16. zmap zgrab 使用
  17. 使用C#将RGB24转换为YUV420格式
  18. c++信息奥赛一本通网站版在线测评答案
  19. 摄入发霉食物和晚睡会导致肝癌
  20. aggr代码 cellranger_CellRanger初探

热门文章

  1. GBase8s数据库游标操作
  2. JVM垃圾回收器cms详解
  3. mybatis sqlSession管理工具类
  4. 文档上传到FTP后换行格式发生变化?---记FTP的ASCII和Binary两种传输方式
  5. 智能外呼机器人,全面助力提升企业营销效率
  6. C语言单片机数码管a段亮,宏晶单片机设置强上拉模式让数码管更亮!
  7. 时间戳是从什么时候开始的?
  8. Python爬虫入门级(二)
  9. 在接口调用的过程中 什么是接口? 什么是回调? 什么是回调参数? 什么是回调url?
  10. C++工厂类和单例模式的结合使用