泛微OA的第三方异构系统调用流程,请提供c#的演示代码

时间: 2024-02-22 10:00:25 浏览: 44
泛微OA的第三方异构系统调用流程通常包括以下步骤: 1. 获取Token:首先需要获取Token,通过以下API接口获取Token ``` http://服务器地址:端口号/weaver/batch/authentication.do ``` 请求方式:POST 请求参数: ``` { "params": { "language": "7", "loginid": "账号", "password": "密码", "useragent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36", "domain": "泛微OA的域名" }, "requestid": "1", "serviceid": "rest", "ticket": "null" } ``` 2. 调用API:获取Token后,就可以调用API接口了。通过以下API接口调用。 ``` http://服务器地址:端口号/rest/workflow/request/create.action ``` 请求方式:POST 请求参数: ``` { "requestname": "测试流程", "workflowid": "流程编号", "operatorid": "操作人编号", "csrftoken": "token", "formdata": [{ "fieldid": "字段ID", "fieldvalue": "字段值" }, { "fieldid": "字段ID", "fieldvalue": "字段值" }], "attachments": [{ "filename": "文件名", "filebody": "文件内容", "filesize": "文件大小" }] } ``` 其中,需要替换的参数有: - 服务器地址:泛微OA服务器地址 - 端口号:泛微OA端口号 - 账号:泛微OA登录账号 - 密码:泛微OA登录密码 - 泛微OA的域名:泛微OA的域名 - 流程编号:泛微OA中指定的流程编号 - 操作人编号:泛微OA中指定的操作人编号 - token:获取到的Token - 字段ID:泛微OA中定义的字段ID - 字段值:需要提交的字段值 - 文件名:需要提交的文件名 - 文件内容:需要提交的文件内容 - 文件大小:需要提交的文件大小 演示代码如下: ```csharp using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; namespace ConsoleApp1 { class Program { static void Main(string[] args) { // 获取Token string token = GetToken("账号", "密码", "泛微OA的域名"); // 调用API string result = CallAPI(token, "流程编号", "操作人编号", "字段ID", "字段值"); Console.WriteLine(result); } // 获取Token static string GetToken(string loginid, string password, string domain) { string url = "http://服务器地址:端口号/weaver/batch/authentication.do"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json;charset=UTF-8"; string postData = "{\"params\":{\"language\":\"7\",\"loginid\":\"" + loginid + "\",\"password\":\"" + password + "\",\"useragent\":\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36\",\"domain\":\"" + domain + "\"},\"requestid\":\"1\",\"serviceid\":\"rest\",\"ticket\":\"null\"}"; byte[] bytes = Encoding.UTF8.GetBytes(postData); request.ContentLength = bytes.Length; Stream stream = request.GetRequestStream(); stream.Write(bytes, 0, bytes.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); string result = reader.ReadToEnd(); reader.Close(); responseStream.Close(); response.Close(); int start = result.IndexOf("csrfToken\":\"") + 12; int end = result.IndexOf("\"", start); string token = result.Substring(start, end - start); return token; } // 调用API static string CallAPI(string token, string workflowid, string operatorid, string fieldid, string fieldvalue) { string url = "http://服务器地址:端口号/rest/workflow/request/create.action"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json;charset=UTF-8"; request.Headers.Add("X-CSRF-TOKEN", token); string postData = "{\"requestname\":\"测试流程\",\"workflowid\":\"" + workflowid + "\",\"operatorid\":\"" + operatorid + "\",\"csrftoken\":\"" + token + "\",\"formdata\":[{\"fieldid\":\"" + fieldid + "\",\"fieldvalue\":\"" + fieldvalue + "\"}],\"attachments\":[]}"; byte[] bytes = Encoding.UTF8.GetBytes(postData); request.ContentLength = bytes.Length; Stream stream = request.GetRequestStream(); stream.Write(bytes, 0, bytes.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); string result = reader.ReadToEnd(); reader.Close(); responseStream.Close(); response.Close(); return result; } } } ``` 注意:代码中的参数需要根据实际情况进行替换。

相关推荐

最新推荐

recommend-type

泛微OA前端开发接口方法和自定义方方法总结注释

泛微OA前端开发接口方法和自定义方方法总结注释 适用于刚接触泛微OA前端开发的小白和不了解泛微OA开发的老手 有什么问题可以私信问我 前端代码开发方式 方式1:模板上代码块,针对单个节点,在显示/打印/移动模板...
recommend-type

泛微 9.0 rest接口调用说明

泛微 9.0 rest 接口调用说明 包含 token 、注册 创建流程接口 单点登录 说明
recommend-type

泛微OA e-cology 8 最新webservice接口文档

泛微OA e-cology 8 最新webservice接口文档 包含获取OA流程、新建流程等接口
recommend-type

开启泛微 OA Ecology 9 全部 非标 功能

使用 SQL 开启泛微 OA Ecology 9 全部 非标 功能,亲测可用
recommend-type

泛微OA系统表结构说明文档.docx

泛微E-cology8数据表结构,内有泛微oa系统图各种数据结构,通过查询,了解数据存放位置,用于统计和分析表数据
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。