damon 发表于 2023-6-13 08:41:26

关于流程中调用外部API问题

可爱美丽帅气又善良的管理员大大你好,有这样一个问题这是我调用外部api接口的代码,为什么他只能在页面中的事件里面执行,无法在流程的脚本中执行呢?报错从500一直到了404!!!!请问如何才能在流程的脚本中执行呢

论坛管理员 发表于 2023-6-13 10:38:48

后端脚本不支持es6,不能使用const

damon 发表于 2023-6-13 11:10:21

本帖最后由 damon 于 2023-6-13 11:24 编辑


damon 发表于 2023-6-13 11:23:04

我将其都更改成了var依旧是无法实现

damon 发表于 2023-6-13 11:26:29

论坛管理员 发表于 2023-6-13 10:38
后端脚本不支持es6,不能使用const

在脚本中应该怎样才能执行debugger呢?

论坛管理员 发表于 2023-6-13 15:34:32

脚本里不能用debugger,可以加print输出,您的写法不对,参考:

damon 发表于 2023-6-19 15:53:24

论坛管理员 发表于 2023-6-13 15:34
脚本里不能用debugger,可以加print输出,您的写法不对,参考:

请问我这段代码存在什么问题吗?为什么无法连接到端口,控制台也没有报错print也没打印出任何值
function sendRequest(fileNames, fileIDs, pathName){
    try{
      print("发起请求:");
      var url ='http://localhost:9002/OAfile/download';
      var ArrayList = Java.type('java.util.ArrayList');
      var heads = new ArrayList();
      var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair');
      var p1 = new NameValuePair('Content-Type', 'application/json');
      heads.add(p1);
      var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection');
      
      // 创建一个JSON对象,包含三个参数
      var data = {
            "fileNames": fileNames,
            "fileIDs": fileIDs,
            "Path": pathName
      };
      
      // 将JSON对象转换为字符串
      var json = JSON.stringify(data);
      
      // 发送POST请求
      var resp = HttpConnectionClass.postAsString(url, heads, json);
      print( "返回:"+ resp.toString());
    }catch(e){
      print("发送请求出错:");
      print(e.printStackTrace() );
    }
}

// 定义文件名和文件ID的数组
var attachmentList =this.workContext.getAttachmentList();
var fileNames = [];
var fileIDs = [];
var pathName = '薪资调整';

// 调用sendRequest函数,发送POST请求
sendRequest(fileNames, fileIDs, pathName);

xadmin 发表于 2023-6-19 17:36:49

damon 发表于 2023-6-19 15:53
请问我这段代码存在什么问题吗?为什么无法连接到端口,控制台也没有报错print也没打印出任何值
function s ...



这个写法后端不支持的,您是已经去掉了吗?因为您最近贴的这段代码我看传入方法的fileNames和fileIDs是空数组

damon 发表于 2023-6-20 09:29:23

xadmin 发表于 2023-6-19 17:36
这个写法后端不支持的,您是已经去掉了吗?因为您最近贴的这段代码我看传入方法的fileNames和fileIDs是 ...

首先感谢您的回复是的这段代码已经改成了下面这段代码,传入方法的fileNames和fileIDs确实是空数组,我现在在测试接口是否可以连接.可是这段代码是有执行成功的但并没有向接口发送请求
function sendRequest(fileNames, fileIDs, pathName){
    try{
      print("发起请求:");
      var url ='http://localhost:9002/OAfile/download';
      var ArrayList = Java.type('java.util.ArrayList');
      var heads = new ArrayList();
      var NameValuePair = Java.type('com.x.base.core.project.bean.NameValuePair');
      var p1 = new NameValuePair('Content-Type', 'application/json');
      heads.add(p1);
      var HttpConnectionClass = Java.type('com.x.base.core.project.connection.HttpConnection');
      
      // 创建一个JSON对象,包含三个参数
      var data = {
            "fileNames": fileNames,
            "fileIDs": fileIDs,
            "Path": pathName
      };
      
      // 将JSON对象转换为字符串
      var json = JSON.stringify(data);
      
      // 发送POST请求
      var resp = HttpConnectionClass.postAsString(url, heads, json);
      print( "返回:"+ resp.toString());
    }catch(e){
      print("发送请求出错:");
      print(e.printStackTrace() );
    }
}

// 定义文件名和文件ID的数组
var attachmentList =this.workContext.getAttachmentList();
var fileNames = [];
var fileIDs = [];
var pathName = '薪资调整';

// 调用sendRequest函数,发送POST请求
sendRequest(fileNames, fileIDs, pathName);

damon 发表于 2023-6-20 09:31:23

另外如果这个方式行不通,应该如何在流程中调用第三方接口发送post请求呢?
页: [1] 2
查看完整版本: 关于流程中调用外部API问题