diff --git a/frontend/src/business/components/settings/project/function/ScriptNavMenu.vue b/frontend/src/business/components/settings/project/function/ScriptNavMenu.vue
index f55716695c..1d8fcb6b70 100644
--- a/frontend/src/business/components/settings/project/function/ScriptNavMenu.vue
+++ b/frontend/src/business/components/settings/project/function/ScriptNavMenu.vue
@@ -4,7 +4,7 @@
{{ $t('api_test.request.processor.code_template') }}
{{ $t('commons.reference_documentation') }}
+ type="primary">{{ $t('commons.reference_documentation') }}
diff --git a/frontend/src/business/components/settings/project/function/custom-function.js b/frontend/src/business/components/settings/project/function/custom-function.js
index c0ee02f7e0..1eab9b5255 100644
--- a/frontend/src/business/components/settings/project/function/custom-function.js
+++ b/frontend/src/business/components/settings/project/function/custom-function.js
@@ -56,7 +56,7 @@ function javaCode(requestObj) {
}
function jsCode(requestObj) {
- return ``;
+ return _jsTemplate(requestObj);
}
function getRequestPath(requestArgs, requestPath) {
@@ -145,7 +145,7 @@ function _beanshellTemplate(obj) {
let uri = `new URIBuilder()
.setScheme("${protocol}")
.setHost("${domain}")
- .setPort(${port})
+ .setPort(${port}) // int类型端口
.setPath("${requestPath}")
`;
// http 请求类型
@@ -181,6 +181,7 @@ import org.apache.http.entity.StringEntity;
// 创建Httpclient对象
CloseableHttpClient httpclient = HttpClients.createDefault();
+// 参数
String payload = ${requestBody};
// 定义请求的参数
URI uri = ${uri}
@@ -192,7 +193,6 @@ log.info(uri.toString());
//response 对象
CloseableHttpResponse response = null;
-// 执行http get请求
response = httpclient.execute(request);
// 判断返回状态是否为200
if (response.getStatusLine().getStatusCode() == 200) {
@@ -200,3 +200,46 @@ if (response.getStatusLine().getStatusCode() == 200) {
log.info(content);
}`
}
+
+function _jsTemplate(obj) {
+ let {requestHeaders = new Map(), requestBody = "", requestPath = "/",
+ requestMethod = "GET", protocol = "http", requestArguments = new Map(), domain = "", port = ""} = obj;
+ let url = "";
+ if (protocol && domain && port) {
+ url = protocol + "://" + domain + ":" + port + requestPath;
+ }
+ url = getRequestPath(requestArguments, url);
+ try {
+ requestBody = JSON.stringify(requestBody);
+ } catch (e) {
+ requestBody = "";
+ }
+
+ let connStr = "";
+ for (let [k, v] of requestHeaders) {
+ connStr += `conn.setRequestProperty("${k}","${v}");` + '\n';
+ }
+
+ return `var urlStr = "${url}"; // 请求地址
+var requestMethod = "${requestMethod}"; // 请求类型
+var parameterData = ${requestBody}; // 请求参数
+var url = new java.net.URL(urlStr);
+var conn = url.openConnection();
+conn.setRequestMethod(requestMethod);
+conn.setDoOutput(true);
+${connStr}conn.connect();
+var opt = new java.io.DataOutputStream(conn.getOutputStream());
+var t = (new java.lang.String(parameterData)).getBytes("utf-8");
+opt.write(t);
+opt.flush();
+opt.close();
+var ipt = conn.getInputStream();
+var reader = new java.io.BufferedReader(new java.io.InputStreamReader(ipt, "UTF-8"));
+var lines;
+var res = "";
+while((lines = reader.readLine()) !== null) {
+ res += lines;
+}
+log.info(res);
+ `;
+}