百度云API使用

Access Key

域名服务API仅对申请的用户开放
,使用前请先提交工单申请。提交工单需要提供AK(Access Key),查看方式如下:管理控制平台>鼠标悬浮到右上角,您的用户名的地方不要点击,下面有一个”安全认证”>点击安全认证,里面有AK。
一般半天就能审核下来

使用API前的准备

自己搞签名太繁琐,可以用提供的SDK下载地址,也可通过maven引用

pom.xml

 <dependency>
   <groupId>com.baidubce</groupId>
   <artifactId>bce-java-sdk</artifactId>
   <version>0.10.42</version>
 </dependency>

SDK入门指南

通过使用【位置服务】测试SDK正确性。帮助文档

main.java


BceClientConfiguration config = new BceClientConfiguration(); config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY)); // 设置网络协议 config.setProtocol(Protocol.HTTPS); // 设置允许打开的最大连接数 config.setMaxConnections(10); // 设置建立连接的超时时间 config.setConnectionTimeoutInMillis(5000); DuMapClient client = new DuMapClient(config); PlaceSearchByRegionParam param = PlaceSearchByRegionParam.builder() .query("ATM机") // 检索关键字 .tag("银行") // 检索分类偏好 .region("北京") // 检索行政区划区域 .output("json") // 输出格式为json字符串或者xml字符串 .build(); String response = client.placeQuery(appId, param); // <your-app-id> 为用户的appId,即前端应用列表中的应用id System.out.println(response); //JSON字符串

位置服务需要提供your-app-id,这个可以在控制台设置,链接

调用域名API

域名服务并没有自己的xxxClient,需要模仿DuMap服务,写一个。

DomainResponse.java

public class DomainResponse extends AbstractBceResponse {
    private String payload;

    public DomainResponse() {
    }

    public String getPayload() {
        return this.payload;
    }

    public void setPayload(String payload) {
        this.payload = payload;
    }
}

DomainResponseHandler.java

public class DomainResponseHandler implements HttpResponseHandler {

    @Override
    public boolean handle(BceHttpResponse httpResponse, AbstractBceResponse response) throws Exception {

        InputStream content = httpResponse.getContent();
        DomainResponse domainResponse = (DomainResponse)response;
        if (content != null) {
            domainResponse.setPayload(new String(ByteStreams.toByteArray(content)));
            content.close();
        }

        return true;
    }
}

DomainClient.java

public class DomainClient extends AbstractBceClient {

    private static HttpResponseHandler[] dumapHandlers = new HttpResponseHandler[]{new BceMetadataResponseHandler(), new BceErrorResponseHandler(), new DomainResponseHandler()};


    public DomainClient(BceClientConfiguration config){
        super(config, dumapHandlers);
    }

    public String query() throws URISyntaxException {

        String s = "http://bcd.baidubce.com";

        URI uri = HttpUtils.appendUri(new URI(s), "/v1/domain/price");

        InternalRequest request = new InternalRequest(HttpMethodName.GET, uri);

        request.addParameter("domain", "51fzlh.com");

        DomainResponse response = this.invokeHttpClient(request, DomainResponse.class);

        return response.getPayload();

    }

}

Main.java


BceClientConfiguration config = new BceClientConfiguration(); config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY)); DomainClient client = new DomainClient(config); System.out.println(client.query());