公网DNS
更新时间:2022-09-07
获取Endpoint
在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于DNS服务域名的部分,理解Endpoint相关的概念。
注意: DNS API支持HTTP和HTTPS两种调用方式。为了提升数据的安全性,建议通过HTTPS调用
获取AK/SK
要使用百度智能云DNS,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问服务做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:
新建DnsClient
DnsClient是公网DNS服务的客户端,为开发者与DNS服务进行交互提供了一系列的方法。 新建DnsClient时,需要先使用Endpoint、AK、SK对BceClientConfigurationl类型的config实例进行配置,再使用config实例对DnsClient进行配置,具体配置方法如下:
static final String ENDPOINT = "";
static final String AK = "";
static final String SK = "";
BceClientConfiguration config = new BceClientConfiguration();
config.setCredentials(new DefaultBceCredentials(AK, SK));
config.setEndpoint(ENDPOINT);
DnsClient dnsClient = new DnsClient(config);
添加域名
使用示例如下:
CreateZoneRequest createZoneRequest = new CreateZoneRequest();
createZoneRequest.setName("javaSdk.com");
dnsClient.createZone(createZoneRequest, "");
查询域名列表
使用示例如下:
dnsClient.listZone("", "", 1000);
删除域名
使用示例如下:
dnsClient.deleteZone("javasdk.com", "aa");
购买付费版域名
使用示例如下:
CreatePaidZoneRequest createZoneRequest = new CreatePaidZoneRequest();
CreatePaidZoneRequest.Billing billing = new CreatePaidZoneRequest.Billing();
billing.setPaymentTiming("Prepaid");
CreatePaidZoneRequest.Billing.Reservation reservation = new CreatePaidZoneRequest.Billing.Reservation();
reservation.setReservationLength(1);
billing.setReservation(reservation);
createZoneRequest.setNames(Arrays.asList("javaSdkPaid.com"));
createZoneRequest.setBilling(billing);
createZoneRequest.setProductVersion("discount");
dnsClient.createPaidZone(createZoneRequest, "");
免费版域名升级成普惠版
使用示例如下:
UpgradeZoneRequest upgradeZoneRequest = new UpgradeZoneRequest();
UpgradeZoneRequest.Billing billing = new UpgradeZoneRequest.Billing();
billing.setPaymentTiming("Prepaid");
UpgradeZoneRequest.Billing.Reservation reservation = new UpgradeZoneRequest.Billing.Reservation();
reservation.setReservationLength(1);
billing.setReservation(reservation);
upgradeZoneRequest.setNames(Arrays.asList("javaSdk.com"));
upgradeZoneRequest.setBilling(billing);
dnsClient.upgradeZone(upgradeZoneRequest, "");
域名续费
使用示例如下:
RenewZoneRequest renewZoneRequest = new RenewZoneRequest();
RenewZoneRequest.Billing billing = new RenewZoneRequest.Billing();
RenewZoneRequest.Billing.Reservation reservation = new RenewZoneRequest.Billing.Reservation();
reservation.setReservationLength(1);
billing.setReservation(reservation);
renewZoneRequest.setBilling(billing);
dnsClient.renewZone("javaSdk.com", renewZoneRequest, null);
添加解析记录
使用示例如下:
CreateRecordRequest createRecordRequest = new CreateRecordRequest();
createRecordRequest.setRr("www");
createRecordRequest.setType("A");
createRecordRequest.setValue("1.1.1.1");
dnsClient.createRecord("ccq.com", createRecordRequest, "");
查询解析记录列表
使用示例如下:
dnsClient.listRecord("ccq.com", "", "", "", 1);
修改解析记录
使用示例如下:
UpdateRecordRequest updateRecordRequest = new UpdateRecordRequest();
updateRecordRequest.setRr("www");
updateRecordRequest.setType("A");
updateRecordRequest.setValue("1.1.1.2");
dnsClient.updateRecord("ccq.com", "48554", updateRecordRequest, "");
开启解析记录
使用示例如下:
dnsClient.updateRecordEnable("ccq.com", "48561", null);
关闭解析记录列表
使用示例如下:
dnsClient.updateRecordDisable("ccq.com", "48561", null);
删除解析记录
使用示例如下:
dnsClient.deleteRecord("ccq.com", "48561", null);
添加线路组
使用示例如下:
AddLineGroupRequest addLineGroupRequest = new AddLineGroupRequest();
addLineGroupRequest.setName("ccqLine");
addLineGroupRequest.setLines(Arrays.asList("yunnan.ct", "henan.ct"));
dnsClient.addLineGroup(addLineGroupRequest, "");
更新线路组
使用示例如下:
UpdateLineGroupRequest updateLineGroupRequest = new UpdateLineGroupRequest();
updateLineGroupRequest.setName("ccqLine1");
updateLineGroupRequest.setLines(Arrays.asList("yunnan.ct"));
dnsClient.updateLineGroup("6166", updateLineGroupRequest, "");
查询线路组列表
使用示例如下:
dnsClient.listLineGroup( "", 1000);
删除线路组
使用示例如下:
dnsClient.deleteLineGroup("6166", null);