全部产品
云市场

调用服务

更新时间:2019-10-09 21:15:43

您可以使用命令行方式或代码方式通过 CSB SDK 调用服务,前者通常用于快速测试验证 CSB 服务的连通有效性。

调用准备

在调用服务前,请确保您已经完成以下工作:

  • 订阅服务

  • 下载 CSB SDK

    CSB 提供 Java 版本的官方 SDK,SDK使用说明参见 Github 的 Readme

  • 确定 CSB 上所发布服务的访问地址

    • 共享实例的服务地址请参见共享实例中的表格。

    • 专享实例的服务地址格式为http://CSB服务地址:8086/CSB,可以在 EDAS 组件中心云服务总线的实例管理页面查看。

      说明:CSB 服务地址即部署 CSB Broker 的 ECS 实例的 IP 地址。如果 Broker 部署了多个 ECS 实例,并绑定了 SLB,则 CSB 服务地址为 SLB 的地址。

发起调用

命令行方式调用

简易版本 CSB SDK 命令行调用格式如下:

  1. java -jar http-client-1.1.5.2.jar post "http://CSB服务地址:8086/CSB?HTTP参数kv值" "CSB服务名" "CSB服务版本号" "访问凭证ak" "访问凭证sk"

说明:CSB 服务地址即部署 CSB Broker 的 ECS 实例的 IP 地址。如果 Broker 部署了多个 ECS 实例,并绑定了 SLB,则 CSB 服务地址为 SLB 的地址。

调用三个不同类型后端服务的命令行结果如下所示。

  • REST > REST

    调用结果-REST

  • REST > Dubbo

    调用结果-Dubbo

  • REST > HSF

    调用结果

代码方式调用

调用三个不同类型后端服务的示例代码如下,因为服务开放的类型都是 REST,代码几乎相同,只是参数有所变化。

  • REST > REST

    1. public void testHttp2Http() {
    2. HttpParameters.Builder builder = new HttpParameters.Builder();
    3. builder.requestURL("http://CSB服务地址:8086/CSB") // 设置请求的 URL。其中,CSB 服务地址即部署 CSB Broker 的 ECS 实例的 IP 地址。如果 Broker 部署了多个 ECS 实例,并绑定了 SLB,则 CSB 服务地址为 SLB 的地址。
    4. .api("http2http1") // 设置服务名
    5. .version("1.0.0") // 设置版本号
    6. .method("post") // 设置调用方式, get/post
    7. .accessKey("ak值").secretKey("sk值"); // 设置accessKey 和 设置secretKey
    8. // 设置HTTP FORM表单请求参数
    9. builder.putParamsMap("times", "12").putParamsMap("name", "name1");
    10. try {
    11. String ret = HttpCaller.invoke(builder.build());
    12. System.out.println("------- ret=" + ret);
    13. } catch (HttpCallerException e) {
    14. e.printStackTrace();
    15. }
    16. }
  • REST > Dubbo

    1. public void testHttp2Dubbo() {
    2. HttpParameters.Builder builder = new HttpParameters.Builder();
    3. builder.requestURL("http://CSB服务地址:8086/CSB") // 设置请求的 URL。其中,CSB 服务地址即部署 CSB Broker 的 ECS 实例的 IP 地址。如果 Broker 部署了多个 ECS 实例,并绑定了 SLB,则 CSB 服务地址为 SLB 的地址。
    4. .api("http2dubbo1") // 设置服务名
    5. .version("1.0.0") // 设置版本号
    6. .method("post") // 设置调用方式, get/post
    7. .accessKey("ak值").secretKey("sk值"); // 设置accessKey 和 设置secretKey
    8. builder.putParamsMap("str", "strValue1");
    9. try {
    10. String ret = HttpCaller.invoke(builder.build());
    11. System.out.println("------- ret=" + ret);
    12. } catch (HttpCallerException e) {
    13. e.printStackTrace();
    14. }
    15. }
  • REST > HSF

    1. public void testHttp2Hsf() {
    2. HttpParameters.Builder builder = new HttpParameters.Builder();
    3. builder.requestURL("http://CSB服务地址:8086/CSB") // 设置请求的 URL。其中,CSB 服务地址即部署 CSB Broker 的 ECS 实例的 IP 地址。如果 Broker 部署了多个 ECS 实例,并绑定了 SLB,则 CSB 服务地址为 SLB 的地址。
    4. .api("http2hsf1") // 设置服务名
    5. .version("1.0.0") // 设置版本号
    6. .method("post") // 设置调用方式, get/post
    7. .accessKey("ak值").secretKey("sk值"); // 设置accessKey 和 设置secretKey
    8. builder.putParamsMap("str", "strValue1");
    9. try {
    10. String ret = HttpCaller.invoke(builder.build());
    11. System.out.println("------- ret=" + ret);
    12. } catch (HttpCallerException e) {
    13. e.printStackTrace();
    14. }
    15. }