开发者社区> 问答> 正文

如何获取用户 Region 信息

OnsRegionList 接口用于返回 MQ 目前开放服务的 Region 列表。

使用场景

在所有 Open API 的调用过程中都需要指定 MQ 的 Region 信息。该 Region 字段即可通过 OnsRegionList 接口获取。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    否    当前查询 MQ 所在区域
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
返回参数列表

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二
HelpUrl    String    帮助链接
Data    List(RegionDo)    查询结果
RegionDo 数据结构

成员    类型    描述
Id    Long    数据库中编号
RegionId    String    regionId 名称
RegionName    String    Region 别名
ChannelId    Long    所在 Channel 编号
ChannelName    String    所在 Channel 别名
CreateTime    Long    创建时间
UpdateTime    Long    最后更新时间
使用示例

public static void main(String[] args) {
        String regionId = "cn-hangzhou";
        String accessKey = "XXXXXXXXXXXXXXXXX";
        String secretKey = "XXXXXXXXXXXXXXXXX";
        String endPointName ="cn-hangzhou";
        String productName ="Ons";
        String domain ="ons.cn-hangzhou.aliyuncs.com";
        /**
        *根据自己需要访问的区域选择Region,并设置对应的接入点
        */
        try {
            DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
        IAcsClient IAcsClient= new DefaultAcsClient(profile);
        OnsRegionListRequest request = new OnsRegionListRequest();
        request.setAcceptFormat(FormatType.JSON);
        request.setPreventCache(System.currentTimeMillis());
        try {
            OnsRegionListResponse response = IAcsClient.getAcsResponse(request);
            List<OnsRegionListResponse.RegionDo> regionDoList=response.getData();
            for (OnsRegionListResponse.RegionDo regionDo:regionDoList){
                System.out.println(regionDo.getId()+"  "+
                regionDo.getOnsRegionId()+"  "+
                regionDo.getRegionName()+"  "+
                regionDo.getChannelId()+"  "+
                regionDo.getChannelName()+"  "+
                regionDo.getCreateTime()+"  "+
                regionDo.getUpdateTime());
            }
        } catch (ClientException e) {
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

展开
收起
猫饭先生 2017-10-27 13:28:36 2120 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《用管控策略设定多账号组织全局访问边界》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载