泛微OA E8 发起HTTP请求

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

请求方式

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

  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设置成正式环境所支持的编译环境,这样能避免很多问题。

### 回答1: 泛微OA是一款集成办公系统,在工作流程中可以设置发起节点自动提交的功能。发起节点指的是工作流程的第一个节点,即由员工发起的申请或者流程。 通过在泛微OA系统中的流程设计器中设置发起节点自动提交的规则,可以实现在发起节点处自动提交流程。具体步骤如下: 1. 打开泛微OA系统中的流程设计器,选择需要设置自动提交的流程。 2. 找到流程图中的发起节点,双击进入节点设置界面。 3. 在节点设置界面中,找到“操作规则”或者类似的选项,点击进入操作规则设置界面。 4. 在操作规则设置界面中,找到“自动提交”或者类似的选项,勾选该选项。 5. 根据需要,可以设置自动提交的条件和触发时机。例如,可以设置当所有必填字段都填写完毕后,自动提交流程;或者设置在某个字段的值满足某个条件时,自动提交流程。 6. 保存设置并退出节点设置界面。 通过以上步骤,就可以实现在泛微OA系统中的发起节点自动提交的功能。这样,当员工发起申请或者流程时,系统会根据设置的规则,自动提交流程到下一个节点,提高工作效率和流程的处理速度。 需要注意的是,自动提交功能的设置需要按照实际需求和流程的特点来进行设置,以确保流程的顺利进行和数据的准确性。 ### 回答2: 泛微OA是一款功能强大、灵活易用的企业办公自动化系统。在工作流程中,发起节点自动提交是指在某个节点的审批环节中,系统可以根据预设的条件自动提交审批。 具体来说,如果在一个工作流程中,某个节点的审批人为空或者审批人已经提前设置好,并且符合条件的表达式是真,则该节点可以自动提交。这样可以大幅度提高工作流程的自动化程度和效率。 发起节点自动提交的好处有以下几点: 1.节省时间与精力:当工作流程中的某些节点不需要人工干预即可通过审批时,无须手动提交,减少了操作的复杂性,节省了员工的时间和精力。 2.提高效率:发起节点自动提交能够在瞬间完成审批,避免了因为人工操作而导致的延误。对于一些简单、常规的审批流程,自动提交可以大大提高效率。 3.减少错误:自动提交减少了人工操作的干预,降低了因为人为失误而产生的错误。系统可以根据预设的条件准确地判断是否需要自动提交,并避免了疏忽造成的错误。 需要注意的是,在设置发起节点自动提交时,应综合考虑流程的实际情况和要求,合理设置条件和审批人,避免滥用自动提交功能导致流程的不灵活或者不当。 ### 回答3: 泛微OA是一种办公自动化软件系统,它可以提供企业内部各个部门之间的协作和沟通平台。在泛微OA中,发起节点自动提交是指当在某个流程节点中设置了发起节点自动提交的设置后,流程在经过该节点时会自动提交到下一个节点,而无需手动操作。 发起节点自动提交的功能在流程中具有一定的便利性和效率提升作用。首先,它可以节省每个节点的手动提交操作的时间和精力,避免了繁琐的操作流程。其次,它可以在一些特定场景下提高流程的灵活性和处理速度,如需要在某个节点进行自动审核或批复时,可以通过发起节点自动提交功能,实现自动流转至下一个节点,快速完成整个流程。 然而,需要注意的是,发起节点自动提交的设置需要谨慎使用,因为一旦设置不当可能会导致流程在未经充分审批的情况下进行下一步操作,从而引发一些潜在的问题和风险。因此,在使用泛微OA时,需要根据实际业务和流程需求,合理设置发起节点自动提交的规则和权限,确保流程能够顺利、合规地进行。 总而言之,泛微OA发起节点自动提交功能可以提高流程的效率和便利性,但需要谨慎设置,避免潜在的问题和风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值