天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1244|回复: 7

[已解决] 在myApps中如何调用内\外部接口?

[复制链接]
adhzh 发表于 2026-5-8 08:32:27 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.X- sp XX
【浏览器类型】:Chrome/其他
【联系方式-QQ】:请留下您的QQ号码
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:
在myApps中如何调用内外部接口:

1、外部接口:外部接口(如http webservice接口)如何配置(是在 高级配置 --- 外部接口 中进行配置吗?)?,在myApps中怎么用iScript脚本来调用?

2、内部接口:在 高级配置 --- APP中心定认的内部接口,在myApps中怎么用iScript脚本来调用?








1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\\\\\\\"已解决可结帖\\\\\\\"
yaya 发表于 2026-5-19 17:25:54 | 显示全部楼层
用这个脚本试试
(function () {
    var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();
    var Security = new Packages.cn.myapps.common.util.Security();
    var UserId = getWebUser().getId();
    var token = Security.getToken(UserId);
    var requestUrl = "xxxxxxxx";//请求接口地址
    var jsonBody = URLConnector.get(requestUrl, null);
    var ArrayList = jsonBody.get("data");
    var json =ArrayList.get(1);
    var name =json.get("name");
    return name;
})();
 楼主| adhzh 发表于 2026-5-20 11:28:52 | 显示全部楼层
在V5.3中,用以上接口,一是提示:
org.graalvm.polyglot.PolyglotException: TypeError: Access to host class cn.myapps.util.http.HttpRequestUtil is not allowed or does not exist

不写
  var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();
    var Security = new Packages.cn.myapps.common.util.Security();
运行时,又报:
   org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (getToken) on cn.myapps.common.util.Security failed due to: Unknown identifier: getToken
 楼主| adhzh 发表于 2026-5-20 11:42:58 | 显示全部楼层
在V5.3中,用以上接口,运行提示:
org.graalvm.polyglot.PolyglotException: TypeError: Access to host class cn.myapps.util.http.HttpRequestUtil is not allowed or does not exist

不写以下脚本,直接通过
  var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();
    var Security = new Packages.cn.myapps.common.util.Security();
运行时,又报:
   org.graalvm.polyglot.PolyglotException: TypeError: invokeMember (getToken) on cn.myapps.common.util.Security failed due to: Unknown identifier: getToken
yaya 发表于 2026-5-22 17:39:16 | 显示全部楼层
adhzh 发表于 2026-5-20 11:42
在V5.3中,用以上接口,运行提示:
org.graalvm.polyglot.PolyglotException: TypeError: Access to host  ...

改成这个试试:var URLConnector = new Packages.cn.myapps.core.util.http.HttpRequestUtil();
var AccessToken = Packages.cn.myapps.common.util.Security.getToken(userid);
 楼主| adhzh 发表于 2026-5-25 08:29:03 | 显示全部楼层
JavaScriptRunning:[file:///MESOPBM.application/生产控制.module/httpTest.form/httpTest.form$FORM:FIELD_VALUE$__JOQfwuXGytvbYlmkUAR$test]: net.sf.json.JSONException: A JSONObject text must begin with '{' at character 1 of [{"Index":0,"Size":"693.4 KB","Name":"2026-05-07-PPED40:15-15-53-YDA21032310PED40A01DTE7A0295..csv","Number":"YZ001"}](function(){ //var httpUtils = new Packages.cn.myapps.core.util.http.HttpRequestUtil(); var userid = getWebUser().getId(); var url = "接口地址"; var AccessToken = Packages.cn.myapps.common.util.Security.getToken(userid ); var apiUrl = url + "?accessToken="+AccessToken; //请求接口地址 var jsonBody = HTTP.httpGet(apiUrl,null);//post println("jsonBody==============="+jsonBody); var fileJson = jsonBody.get("data"); var jsonArray = new Packages.org.json.JSONArray(fileJson); for(var i=0;i<jsonArray.length();i++){ var jsonObject = jsonArray.getJSONObject(i); var fileName = jsonObject.getString("name"); println("fileName==============="+fileName); } return fileName; })()
 楼主| adhzh 发表于 2026-5-25 08:50:18 | 显示全部楼层
现在就这么一个需求,在iScript中调用外部的URL:h t t p ://172.16.36.239:1080/archive/file/YDA21032310PED40A01DTE7A0295
这个地址返回的数据为:
[{"Index":0,"Size":"693.4 KB","Name":"2026-05-07-PPED40:15-15-53-YDA21032310PED40A01DTE7A0295..csv","Number":"YZ001"}]
然后解析这个JSON,获取相应的值 如Name

现在用了你的方法,都报错,直接用httpGet,报A JSONObject text must begin with '{' at character 1 of 错
yaya 发表于 2026-5-26 18:25:31 | 显示全部楼层
adhzh 发表于 2026-5-25 08:50
现在就这么一个需求,在iScript中调用外部的URL:h t t p ://172.16.36.239:1080/archive/file/YDA21032310 ...

脚本用这个试试
(function(){
       var httpUtils = Packages.cn.myapps.core.util.http.HttpRequestUtil;
        var userid = getWebUser().getId();
        var AccessToken = Packages.cn.myapps.common.util.Security.getToken(userid);   
        var apiUrl = "接口地址?accessToken="+AccessToken;  //请求接口地址
        var jsonBody = httpUtils.get(apiUrl,null);//post
                var fileJson = jsonBody.get("data");
                var jsonArray = Packages.com.alibaba.fastjson.JSONArray.parseArray(fileJson);//接口数据返回需要是jsonArray格式
                for(var i=0;i<jsonArray.size();i++){
                        var jsonObject = jsonArray.getJSONObject(i);
                        var fileName = jsonObject.getString("name");
                }
})()

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 06:38

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表