全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

使用 HTTP-SDK 调用 Console API

更新时间:2017-11-20 11:16:46

使用 HTTP-Client SDK 可以对 CSB 控制台的 Open API 进行调用。

SDK 的介绍和获取

请参考 SDK 的说明和使用

使用 HTTP-SDK 调用 Open API 的前提条件

  • 下载 HTTP-SDK
  • 按照 Open API 的文档了解该 API 的调用地址,请求参数,请求方式(POST/GET),返回值的结构。
  • 确定要调用 API 的安全 Key 信息: 管理员用户创建的凭证的一对儿有效的 Access Key ID 和 Access Key Secret。

使用命令行方式调用

命令行方式通常用来测试或临时调用 Open API。

调用时使用如下格式:

  1. java [-Dhfile=headers.prop] [-Ddfile=d.txt] -jar Http-client.jar method url api version ak sk
  2. method = get : 使用GET方式调用
  3. method = post : 使用POST方式调用
  4. method = cget : 返回一个GET方式的请求串,可以使用cUrl名利执行
  5. method = cpost : 返回一个POST方式的请求串,可以使用cUrl名利执行
  6. 系统属性'hfile'是可选的,用来定义要请求的HTTP Head,文件格式如下:
  7. header1=value1
  8. header2=value2
  9. 系统属性'dfile'是可选的,用来定义要请求的HTTP Body参数,文件格式如下:
  10. data1=value1
  11. data2=value2

下面是具体的使用 SDK 命令行进行 API 调用的例子:

  • 获取实例列表

    1. java -jar http-sdk.jar get "http://lcsb.daily.taobao.net:8080/api/csbinstance/listCsbs" "/api/csbinstance/listCsbs" 1.1.0.0 replace-ak replace-sk
  • 向某个实例添加一个新的服务组

    1. java -Ddfile=dfile.prop -jar http-sdk.jar post "http://lcsb.daily.taobao.net:8080/api/project/createorupdate?csbId=175" "/api/project/createorupdate" replace-ak replace-sk

    其中 dfile.prop的内容是

    1. data={"description":"openapi test2","projectName":"lt-测试服务组"}

注意

  1. API 定义的是接口全路径,必须以”/“开头
  2. 必须根据 API 的要求使用正确的 方法(Method)

使用编程行方式调用

需要在用户的 pom.xml 中引入 http-client-sdk

  1. TODO

下面是具体的使用编程方式行进行API调用的例子

  • 获取实例列表

    1. try {
    2. // 使用HttpCaller调用Console Open API的例子
    3. // 1. 获取实例列表
    4. // 设置请求参数
    5. HttpParameters.Builder hp = HttpParameters.newBuilder();
    6. hp.requestURL(reqUrl + apiListCsb); //请求的URL需要是访问API的完整URL
    7. hp.api(apiListCsb).version("1.1.0.0"); //设置请求的api和版本, API需要以"/"开头
    8. hp.accessKey(ak).secretKey(sk); //设置ak,sk 使用当前操作的实例的ak,sk
    9. hp.method("get"); //设置调用方式
    10. String ret = null;
    11. ret = HttpCaller.invoke(hp.build()); //进行调用
    12. System.out.println("retString = " + ret); //处理后续返回结果
    13. System.out.println();
    14. if (ret != null) {
    15. Result result = JSON.parseObject(ret, Result.class);
    16. List<SimpleCsbInstance> instances = result.getArray("items", SimpleCsbInstance.class);
    17. System.out.println("instances = " + instances);
    18. }
    19. } catch (HttpCallerException e) {
    20. //错误处理
    21. e.printStackTrace();
    22. }
  • 向某个实例添加一个新的服务组

    1. try {
    2. String data = "{\"description\":\"openapi test\",\"projectName\":\"lt-wiseking\"}";
    3. // 使用HttpCaller调用Console Open API的例子
    4. // 2. 增加一个服务分组 (POST方式调用)
    5. // 设置请求参数
    6. HttpParameters.Builder hp = HttpParameters.newBuilder();
    7. hp.requestURL(reqUrl + apiAddPrj + "?csbId=176"); // 请求地址可以附带请求参数
    8. hp.api(apiAddPrj).version("1.1.0.0"); // 设置调用的api和版本
    9. hp.accessKey(ak).secretKey(sk); // 设置所属实例的ak,sk
    10. hp.method("post"); // 设置调用方式
    11. hp.putParamsMap("data", data); // 设置请求的form body参数
    12. String ret = HttpCaller.invoke(hp.build()); // 进行调用
    13. System.out.println("retStr =" + ret);
    14. // 可以将它转换为Reult对象,进行后续处理
    15. } catch (HttpCallerException e) {
    16. e.printStackTrace();
    17. }
本文导读目录