如果您需要宽带加速预校验,可以调用宽带加速预校验接口。

宽带加速预校验接口(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. 编写样例程序

/**
 * 产品名称:云通信加速API产品,开发者无需替换
 */
static final String product = "Snsuapi";
/**
 * 产品域名,开发者无需替换
 */
static final String domain = "snsuapi.aliyuncs.com";

// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
static final String accessKeyId = "yourAccessKeyId";
static final String accessKeySecret = "yourAccessKeySecret";



public static BandPrecheckResponse bandPreCheck() {

    BandPrecheckResponse response = new BandPrecheckResponse();
    /**
     * 可自助调整超时时间
     */
    System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
    System.setProperty("sun.net.client.defaultReadTimeout", "10000");

    try {
        /**
         * 初始化acsClient,暂不支持region化
         */
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);

        /**
         * 组装请求对象-具体描述见控制台-文档部分内容
         */
        BandPrecheckRequest request = new BandPrecheckRequest();
        String ipAddress = "127.0.0.1";
        Integer port = 80;
        request.setIpAddress(ipAddress);
        request.setPort(port);
        /**
         * 禁止Client的自动重试,如果失败,最好选择手动重试
         */
        response = acsClient.getAcsResponse(request,false,0);

        /**
         * 具体的错误码可以参考具体的文档
         */
        BandPrecheckResponse.ResultModule resultModule =response.getResultModule();
        /**
         * 入参的BandId
         */
        resultModule.getBandId();
        /**
         * 当前宽带的下行速率,单位是 Mbps
         */
        Integer downLoadBandWidth = resultModule.getDownloadBandwidth();

        /**
         * 当前宽带的上行速率,单位是 Mbps
         */
        Integer upLoadBandWidth = resultModule.getUploadBandwidth ();

        /**
         * 当前带宽可购买的加速产品Offer
         * 如果当前返回值为null 或者 空列表,表示当前没有合适的加速服务
         */
        List<BandPrecheckResponse.ResultModule.BandOfferListItem> bandOfferListItemList = resultModule.getBandOfferList();
        for (BandPrecheckResponse.ResultModule.BandOfferListItem item : bandOfferListItemList) {
            System.out.println(item.getOfferId());   // Long 类型
            System.out.println(item.getBandwidth()); // 单位 Mbps
            System.out.println(item.getDirection()); // up, down 两个值,UP:上行; DOWN:下行
            System.out.println(item.getDuration());  // 可用时长 BandOfferListItem.Duration >= 9999 表示包月
        }
        return response;
    } catch (ClientException e) {
        /**
         * 需要捕获Client异常
         */
        e.printStackTrace();

        /**
         * todo 进行一些特定业务处理,重试或者抛出异常
         */
    }
    return response;
}