You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Oracle CRM中用Groovy调用GET API遇RESTClient类解析错误求助

问题描述

在Oracle CRM中使用Groovy脚本调用GET API时,出现以下错误:

Error: "unable to resolve class groovyx.net.http.RESTClient"

运行的代码如下:

import groovy.json.JsonSlurper
import groovyx.net.http.RESTClient

// Define the REST API endpoint URL
def apiUrl = 'https://restapi.echo.com/v2/Shipments/55493611'

// Define your authentication credentials
def username = 'E178387'
def password = 'a9eaeb31-6f33-4e62-b0b7-a6ea446438fb'

// Create a REST client
def restClient = new RESTClient(apiUrl)

// Set authentication headers
restClient.headers['Authorization'] = "Basic " + "${username}:${password}".bytes.encodeBase64().toString()

// Make a GET request
def response = restClient.get()

// Check the response status code
if (response.status == 200) {
    // Parse the JSON response
    def jsonResponse = new JsonSlurper().parseText(response.data)
    // Process the JSON data
    println "Response: $jsonResponse"
} else {
    println "Error: ${response.status} - ${response.statusText}"
}
解决方案

错误原因是Oracle CRM的Groovy运行环境未包含groovyx.net.http.RESTClient所属的HTTPBuilder第三方类库,无法解析该类。可改用Oracle CRM内置支持的HTTP调用方式,以下是两种可行方案:

方案1:使用Oracle CRM原生RestClient

Oracle CRM提供了内置的oracle.cloud.rest.RestClient类,无需额外依赖即可使用:

import groovy.json.JsonSlurper
import oracle.cloud.rest.RestClient

def apiUrl = 'https://restapi.echo.com/v2/Shipments/55493611'
def username = 'E178387'
def password = 'a9eaeb31-6f33-4e62-b0b7-a6ea446438fb'

// 创建RestClient实例
def restClient = RestClient.builder()
    .baseUri(apiUrl)
    .build()

// 构造Basic Auth头部
def authHeader = "Basic " + "${username}:${password}".bytes.encodeBase64().toString()

// 发起GET请求
def response = restClient.get()
    .header("Authorization", authHeader)
    .retrieve()

// 解析响应
if (response.statusCode() == 200) {
    def jsonResponse = new JsonSlurper().parseText(response.body(String))
    println "Response: $jsonResponse"
} else {
    println "Error: ${response.statusCode()} - ${response.statusMessage()}"
}

方案2:使用Java原生HttpURLConnection

若内置RestClient存在局限,可直接使用Java原生的HttpURLConnection,Groovy完全兼容Java代码:

import groovy.json.JsonSlurper

def apiUrl = 'https://restapi.echo.com/v2/Shipments/55493611'
def username = 'E178387'
def password = 'a9eaeb31-6f33-4e62-b0b7-a6ea446438fb'

// 创建连接
URL url = new URL(apiUrl)
HttpURLConnection connection = (HttpURLConnection) url.openConnection()

// 设置请求方法和头部
connection.setRequestMethod("GET")
def authHeader = "Basic " + "${username}:${password}".bytes.encodeBase64().toString()
connection.setRequestProperty("Authorization", authHeader)

// 获取响应状态和内容
int responseCode = connection.getResponseCode()
if (responseCode == 200) {
    def responseBody = connection.inputStream.text
    def jsonResponse = new JsonSlurper().parseText(responseBody)
    println "Response: $jsonResponse"
} else {
    def errorMessage = connection.errorStream.text
    println "Error: ${responseCode} - ${errorMessage}"
}

// 关闭连接
connection.disconnect()

内容的提问来源于stack exchange,提问作者Sudhanshu Vishwakarma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 23:12:15