已经发布到CSB开放平台的服务,能自行生成Java代码。API消费方可直接使用Java代码调用订阅的服务。
背景信息
除本文介绍的使用Java代码调用服务外,CSB目前还支持SDK调用服务和JWT Token调用服务。如果您想要了解更多调用服务的方式,请参见:
准备工作
在调用服务前,请确保您已经完成以下工作:
获取服务访问地址
服务发布到共享实例和专享实例,服务访问地址是不一样的。
- 获取共享实例的服务地址,请参见共享实例名称和服务访问地址。
- 专享实例的服务地址格式为
http://CSB服务地址:8086/CSB
。
说明 CSB服务地址即创建CSB实例时绑定的SLB的地址。
CSB服务地址的获取方式如下:
- 使用创建CSB实例的账号登录EDAS控制台。
- 在左侧导航栏选择。
- 在云服务总线左侧导航栏单击实例管理。
- 在实例列表页面选择目标地域,然后查看并获取目标实例的SLB地址。
获取服务生成代码
- 登录CSB控制台。
- 在顶部菜单栏选择地域。
- 在左侧导航栏单击实例列表。
- 在实例列表页面单击具体实例名称。
- 在左侧导航栏选择。
- 在我的服务页面选择目标服务,在该服务的操作列下选择。
- 在生成调用代码页面拷贝并记录CSB-SDK依赖和Java代码。
调用服务
本示列以在IntelliJ IDEA创建工程,使用服务生成代码调用服务为例。
- 打开IntelliJ IDEA,并创建一个工程。
- 在pom.xml文件中添加保存的CSB-SDK依赖。
<dependency>
<groupId>com.alibaba.csb.sdk</groupId>
<artifactId>http-client</artifactId>
<version>1.1.5.8</version>
</dependency>
- 在应用中添加保存的Java代码,并设置入参的值。
本示例以发布的RESTful服务生成的Java代码为例:
public static void main(String[] args) {
Map<String, Object> params = new HashMap<>();
params.put("name", "name");
params.put("times", 0);
params.put("sleepMSeconds", 0);
HttpParameters.Builder builder = HttpParameters.newBuilder()
.requestURL("http://192.168.0.163:8086/CSB")
.api("http2http1")
.version("1.0.0")
.method("POST")
.contentBody(new ContentBody(JSON.toJSONString(params)));
HttpReturn response = null;
try {
response = HttpCaller.invokeReturn(builder.build());
} catch (HttpCallerException e) {
throw new RuntimeException(e);
}
if (response.httpCode == 200) {
System.out.println("调用CSB服务返回:" + response.getResponseStr());
String result = response.getResponseStr();
}
}
- 运行程序,调用服务。
调用服务返回的结果示列如下:
200 OK|
调用CSB服务返回:{"result":"JSON result is: Hello null love null times. jsonbody={"times":12,"name":"name1","sleepMSeconds":0}"}