全部产品
云市场

宽带加速预校验

更新时间:2018-10-19 10:10:58

宽带加速预校验接口(BandPreCheck)

用于判断当前宽带线路是否可以被提速及可以被提速到的目标带宽。

参数列表

入参列表
参数名称 参数类型 是否必填 样例取值 参数说明
IpAddress String 192.168.1.2 加速IP地址
Port Integer 80 加速端口
出参列表
参数名称 参数类型 样例取值 参数说明
RequestId String 89078768788ada 请求ID
Code String OK 状态码-返回OK代表请求成功,其他错误码详见错误码列表
Message String 请求成功 状态码的描述
ResultModule Object 返回结果 具体校验结果,详见ResultModule样例

ResultModule 格式

参数名称 参数类型 样例取值 参数说明
BandId Long 1000001L 当前宽带Id
UploadBandwidth Integer 10M 当前上行带宽,单位Mbps
DownloadBandwidth Integer 10M 当前下行带宽,单位Mbps
BandOfferList List 可订购的加速产品列表,详见BandOffer样例

BandOffer 格式

参数名称 参数类型 样例取值 参数说明
OfferId Long 220980804008L 加速产品ID
Bandwidth Integer 100M 目标加速带宽,单位Mbps
Duration Long 10 加速时长,单位分钟,包月返回99999
Direction String UP/DOWN 加速方向,UP上行加速,DOWN 下行加速

技术对接步骤

1. 下载SDK工具包

SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是snsu-open-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。点击进入工具包下载

2. 编写样例程序
  1. /**
  2. * 产品名称:云通信加速API产品,开发者无需替换
  3. */
  4. static final String product = "Snsuapi";
  5. /**
  6. * 产品域名,开发者无需替换
  7. */
  8. static final String domain = "snsuapi.aliyuncs.com";
  9. // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
  10. static final String accessKeyId = "yourAccessKeyId";
  11. static final String accessKeySecret = "yourAccessKeySecret";
  12. public static BandPrecheckResponse bandPreCheck() {
  13. BandPrecheckResponse response = new BandPrecheckResponse();
  14. /**
  15. * 可自助调整超时时间
  16. */
  17. System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
  18. System.setProperty("sun.net.client.defaultReadTimeout", "10000");
  19. try {
  20. /**
  21. * 初始化acsClient,暂不支持region化
  22. */
  23. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  24. DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  25. IAcsClient acsClient = new DefaultAcsClient(profile);
  26. /**
  27. * 组装请求对象-具体描述见控制台-文档部分内容
  28. */
  29. BandPrecheckRequest request = new BandPrecheckRequest();
  30. String ipAddress = "127.0.0.1";
  31. Integer port = 80;
  32. request.setIpAddress(ipAddress);
  33. request.setPort(port);
  34. /**
  35. * 禁止Client的自动重试,如果失败,最好选择手动重试
  36. */
  37. response = acsClient.getAcsResponse(request,false,0);
  38. /**
  39. * 具体的错误码可以参考具体的文档
  40. */
  41. BandPrecheckResponse.ResultModule resultModule =response.getResultModule();
  42. /**
  43. * 入参的BandId
  44. */
  45. resultModule.getBandId();
  46. /**
  47. * 当前宽带的下行速率,单位是 Mbps
  48. */
  49. Integer downLoadBandWidth = resultModule.getDownloadBandwidth();
  50. /**
  51. * 当前宽带的上行速率,单位是 Mbps
  52. */
  53. Integer upLoadBandWidth = resultModule.getUploadBandwidth ();
  54. /**
  55. * 当前带宽可购买的加速产品Offer
  56. * 如果当前返回值为null 或者 空列表,表示当前没有合适的加速服务
  57. */
  58. List<BandPrecheckResponse.ResultModule.BandOfferListItem> bandOfferListItemList = resultModule.getBandOfferList();
  59. for (BandPrecheckResponse.ResultModule.BandOfferListItem item : bandOfferListItemList) {
  60. System.out.println(item.getOfferId()); // Long 类型
  61. System.out.println(item.getBandwidth()); // 单位 Mbps
  62. System.out.println(item.getDirection()); // up, down 两个值,UP:上行; DOWN:下行
  63. System.out.println(item.getDuration()); // 可用时长 BandOfferListItem.Duration >= 9999 表示包月
  64. }
  65. return response;
  66. } catch (ClientException e) {
  67. /**
  68. * 需要捕获Client异常
  69. */
  70. e.printStackTrace();
  71. /**
  72. * todo 进行一些特定业务处理,重试或者抛出异常
  73. */
  74. }
  75. return response;
  76. }