泛微OA E8 发起HTTP请求

泛微发送http请求,调用其他系统接口

  • 请求方式
    • GET请求
    • POST请求

请求方式

泛微发送请求,将数据同步至第三方系统,有两种请求方式:

  1. get请求
  2. post请求

GET请求

相信各位都清楚get请求是什么,在这里就不做过多介绍了
一般当传递的参数比较少的时候,就采用get请求比较方便。具体代码如下所示:

private String doGet(String pathUrl) {StringBuffer sbf = new StringBuffer();System.out.println("开始调用第三方系统接口,pathurl:" + pathUrl);try {URL apiUrl = new URL(pathUrl);HttpURLConnection connection = (HttpURLConnection) apiUrl.openConnection();connection.setRequestMethod("GET");int responseCode = connection.getResponseCode();if (responseCode == 200) {BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));String inputLine;while ((inputLine = reader.readLine()) != null) {sbf.append(inputLine);}reader.close();System.out.println("调用第三方接口返回值:" + sbf.toString());} else {System.out.println("GET request failed. Response code: " + responseCode);}} catch (IOException e) {e.printStackTrace();}return sbf.toString();}private void syncDimStatusToBM() {String databaseName = "OA";RecordSetDataSource zsrs = new RecordSetDataSource(databaseName);RecordSetDataSource urs = new RecordSetDataSource(databaseName);String sql = "select * from table1";zsrs.execute(sql);while (zsrs.next()) {String t1= zsrs.getString("t1");String t2= zsrs.getString("t2");String requestid = zsrs.getString("requestid");if ((workcode != null) && (!workcode.isEmpty()) && (workcode.length() > 0) && (lastname != null)&& (!lastname.isEmpty()) && (workcode.length() > 0)) {try {String nameStr = new String(URLEncoder.encode(t2, "utf-8").getBytes());String url = "https://example.cn/test/clearAll/" + t1+ "/" + nameStr;String result = doGet(url);System.out.println("requestid: " + requestid + ",url:" + url + ", result: " + result);JsonParser parser = new JsonParser();if ((result != null) && (result.length() > 0) && (parser.parse(result) != null)) {JsonParser parser1 = new JsonParser();JsonObject object1 = (JsonObject) parser1.parse(result);String status = object1.get("retCode").getAsString();String retMsg = object1.get("retMsg").getAsString();if (retMsg != null && retMsg.length() > 0) {retMsg = new String(retMsg.getBytes("gbk"), "UTF-8");}System.out.println("workcode: " + t1+ ", status: " + status + ", message: " + retMsg);if ((status != null) && (!status.isEmpty()) && (status.length() > 0)) {if (status.equals("1")) {String usql = "update table1 set tname = '123' where requestid = " + requestid;urs.execute(usql);} else if ((status.equals("0")) && (retMsg != null) && (!retMsg.isEmpty())&& ((retMsg.contains("用户不存在")) || (retMsg.contains("用户权限不足")))) {String usql = "update table3 set sftj = 'Y' where requestid=" + requestid;urs.execute(usql);}}}} catch (Exception e) {e.printStackTrace();}}}}

POST请求

一般当你传送的请求参数比较多的时候,用post请求的时候比较方便,传json的数据格式也比较方便

private static String doPost(String json) {/**跳过ssl认证,因为jdk1.6比较老旧,所支持的ssl比较不全面,*所以就会报出异常,ssl认证失败*但是这样,会损失系统的安全性,第三方容易跳过验证攻击服务器*/HostnameVerifier hv = new HostnameVerifier() {  public boolean verify(String urlHostName, SSLSession session) {  System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost()+"urlHostName"+urlHostName);if(!urlHostName.equals("www.example.com")&&!urlHostName.equals("www.example.com")){return false;   }return true; }  };  HttpsURLConnection.setDefaultHostnameVerifier(hv);System.out.println("传入的参数值"+json);StringBuilder response = new StringBuilder();HttpURLConnection connection = null;try {URL url = new URL("https://www.example.com/test/addUser");connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");connection.setRequestProperty("Content-Type", "application/json; utf-8");connection.setRequestProperty("Accept", "application/json");connection.setUseCaches(false);connection.setDoInput(true);connection.setDoOutput(true);OutputStream os = connection.getOutputStream();byte[] input = json.getBytes(Charset.forName("UTF-8"));os.write(input, 0, input.length);os.flush(); int responseCode = connection.getResponseCode();System.out.println("Response Code : " + responseCode);BufferedReader br = new BufferedReader(new InputStreamReader(responseCode == HttpURLConnection.HTTP_OK ? connection.getInputStream() : connection.getErrorStream(),Charset.forName("UTF-8"))); String responseLine;while ((responseLine = br.readLine()) != null) {response.append(responseLine.trim());}           } catch (Exception e) {System.out.println("doPost方法异常"+e);e.printStackTrace();} finally {if (connection != null) {connection.disconnect();}}return response.toString();}

泛微OA E8发起请求,不仅仅要考虑到依赖的包是否是被编译环境jdk1.6所支持的,如果你们的测试环境和正式环境的编译环境不一样的话,最好就是直接将eclipse或者idea的编译jdk设置成正式环境所支持的编译环境,这样能避免很多问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148113.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

电脑桌面文件太多太杂?电脑管理软件一键整理,强迫症福音!

电脑桌面文件太多太杂?随着工作量的增加和信息的不断累积,许多人的电脑桌面上往往堆满了各式各样的文件和文件夹,显得杂乱无章。这种“桌面乱象”不仅影响了工作效率,还可能给心理带来不必要的压力,尤其对于那些有强迫…

【RTT-Studio】详细使用教程十六:DAC7311外部DAC使用

文章目录 一、简介二、驱动程序三、DAC设置注册四、完整代码五、测试验证 一、简介 8 位 DAC5311、10 位 DAC6311 和 12 位 DAC7311 (DACx311) 是低功耗、单通道、电压输出数模转换器 (DAC)。DACx311 在正常工作状态下具有低功耗(5V 时为 0.55mW,断电模式…

【Qt笔记】QStackedWidget控件详解

目录 引言 一、基础功能 二、属性设置 2.1 属性介绍 2.2 代码示例 2.3 代码解析 三、常用API 3.1 添加子部件 3.2 插入子部件 3.3 移除子部件 3.4 设置当前页面索引值 3.5 设置当前显示子部件 3.6 返回索引处子部件指针 3.7 返回子部件索引值 四、信号与槽 4.…

蓝牙AOA基站助力打造智慧医院管理系统

随着科技的飞速发展,智慧医院的概念逐渐深入人心。其中,蓝牙AOA(到达角)定位技术以其高精度、低功耗、低成本等优势,在智慧医院建设中扮演着重要角色。本文将深入探讨蓝牙AOA基站如何助力智慧医院的建设与发展。 一、蓝…

Linux C高级 day4

一、思维导图 二、练习 1、统计家目录下.c文件的个数 #!/bin/bashcount0 for file in ~/*.cdo((count)) done echo $count 2、定义一个稀疏数组(下标不连续),写一个函数,求该稀疏数组的和,要求稀疏数组中的数值通过参数传递到函数中。arr(…

【例题】证明极限

已知&#xff1a; ∀ ε > 0 , ∃ n > N , ∣ a n − A ∣ < ε \forall \varepsilon >0, \exist n>N,|a_n-A|<\varepsilon ∀ε>0,∃n>N,∣an​−A∣<ε 目标&#xff1a; ∀ ε > 0 , ∃ n > N 1 , ∣ a 1 . . . a n n − A ∣ < ε \…

codeforces round974 div3 分层图 树形dp

A Robin Helps 问题&#xff1a; 思路&#xff1a;模拟 代码&#xff1a; #include <bits/stdc.h> using namespace std;const int N 2e5 10;void solve() {int n, k;cin >> n >> k;vector<int> a(n 1);for(int i 1; i < n; i ) cin >&…

9.23 My_string.cpp

my_string.h #ifndef MY_STRING_H #define MY_STRING_H#include <iostream> #include <cstring>using namespace std;class My_string { private:char *ptr; //指向字符数组的指针int size; //字符串的最大容量int len; //字符串当前…

车载视频监控:安全生产与管理的新趋势

随着社会的快速发展&#xff0c;车载视频监控技术已成为现代安防领域不可或缺的一部分。车载视频监控设备是专为车载安防设计的新型视频监控设备&#xff0c;其安装已经成为社会发展的必然趋势。对于企业的安全生产和管理来说&#xff0c;车载视频监控设备起着至关重要的作用。…

wpf,工具栏上,最小化按钮的实现

工具栏上&#xff0c;最小化按钮的实现。工具栏做成的是用户控件。 用户控件的xaml <Button HorizontalAlignment"Right" Height"32" Click"MinimizeClick" /> 用户控件的cs代码 private void MinimizeClick(object sender, RoutedEven…

2024年408真题计算机网络篇

1 https://zhuanlan.zhihu.com/p/721169467。最小割可以看作是切断水流的最薄弱环节——通过切断这些关键的“水管”&#xff0c;就可以完全阻止水从源点流到汇点。 在下列二进制数字调制方法中&#xff0c;需要2个不同频率载波 的是 A. ASK B. PSK C. FSK D. DPSK 解答…

【行为树】02-基础的端口

Input and Output Ports 输入和输出端口 正如我们之前解释的那样,自定义的TreeNodes可以用于执行任意简单或复杂的软件。它们的目标是提供一个具有更高抽象层级的接口。 因此,它们在概念上与函数没有不同。 类似于函数,我们经常想要: 将参数传递给一个节点(inputs)从一…

论文Query2Label: A Simple Transformer Way to Multi-Label Classification

本文将Transformer解码器用于多标签分类&#xff0c;将label embedding作为query&#xff0c;计算与feature map的cross-attention&#xff0c;取得了SOTA结果。 论文&#xff1a;https://arxiv.org/pdf/2107.10834.pdf 代码&#xff1a;https://github.com/SlongLiu/query2lab…

洛谷-P3916 图的遍历

题目描述 给出 N 个点&#xff0c;M 条边的有向图&#xff0c;对于每个点 v&#xff0c;求A(v) 表示从点 v 出发&#xff0c;能到达编号最大的点。 思路 既然是要找到最大的点&#xff0c;那么我从最大的点开始DFS是否可以&#xff1f; 于是可以反向建图&#xff0c;然后从最…

Excel的基本应用 ___2

快速插入函数 方法一&#xff1a; 方法二&#xff1a;快捷键 Alt&#xff1a;求和 动态查看 利用函数清单选择函数 相对地址和绝对地址的转换 FnF4

寻觅义乌自闭症学校:了解寄宿制教育的选择

在义乌乃至全国范围内&#xff0c;为自闭症儿童寻找一所合适的学校&#xff0c;是许多家庭面临的重大挑战。随着特殊教育的发展&#xff0c;越来越多的寄宿制学校以其独特的优势和全面的教育体系&#xff0c;为这些特殊的孩子提供了更加专业和细致的关怀。今天&#xff0c;我们…

MySQL实战面试题(附案例答案+建表语句+模拟数据+案例深度解析),练完直接碾压面试官

知识点思维导图 案例1 建表语句与模拟数据 用户表 users CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, signup_date DATE NOT NULL ); INSERT INTO users (username, email, signu…

9月23日

思维导图 作业 统计家目录下.c文件的个数 #!/bin/bashnum0for file in ~/*.c; doif [ -f "$file" ]; then((num))fi doneecho "家目录下.c文件的个数: $num"

多个异构系统用户权限如何统一管理?

企业内部往往部署了多个业务系统来支撑不同的业务流程&#xff0c;然而&#xff0c;这些系统之间的标准不一&#xff0c;导致跨系统操作时权限不透明&#xff0c;难以确保数据安全与合规操作。同时&#xff0c;频繁的权限变更与维护工作量大且效率低&#xff0c;给企业带来了诸…

基于单片机的智能窗帘控制系统-设计说明书

设计摘要&#xff1a; 智能窗帘控制系统是一种利用单片机技术实现的智能化控制系统&#xff0c;可以实现窗帘的自动开合和定时控制功能。本系统的设计基于单片机技术&#xff0c;结合传感器、电机和执行器等硬件设备&#xff0c;实现对窗帘的智能化控制。通过传感器采集环境信…