第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 调用阿里云api获取解析记录列表

调用阿里云api获取解析记录列表

时间:2020-02-11 05:53:55

相关推荐

调用阿里云api获取解析记录列表

接口文档:获取解析记录列表-/document_detail/29776.html?spm=5176.doc29699.6.614.vXIo2V

直接post代码:

package JunitTest;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.security.InvalidKeyException;import java.security.NoSuchAlgorithmException;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.SimpleTimeZone;import java.util.UUID;import javax.crypto.Mac;import javax.crypto.spec.SecretKeySpec;import mons.codec.binary.Base64;import org.junit.Test;public class getDescribeDomainRecords {@Testpublic void test() throws UnsupportedEncodingException, InvalidKeyException, NoSuchAlgorithmException{try{URL url = new URL("/?"+getDescribeDomainRecords(""));HttpURLConnection urlcon = (HttpURLConnection)url.openConnection();urlcon.connect(); //获取连接InputStream is = urlcon.getInputStream();BufferedReader buffer = new BufferedReader(new InputStreamReader(is));StringBuffer bs = new StringBuffer();String l = null;while((l=buffer.readLine())!=null){bs.append(l).append("\n");}System.out.println(bs.toString());}catch(IOException e){}}/*** * @param dns 域名* @return* @throws UnsupportedEncodingException* @throws InvalidKeyException* @throws NoSuchAlgorithmException*/public static String getDescribeDomainRecords(String dns) throws UnsupportedEncodingException, InvalidKeyException, NoSuchAlgorithmException{final String HTTP_METHOD = "GET";Map<String, String> parameters = new HashMap<String, String>();// 加入请求参数parameters.put("Action", "DescribeDomainRecords");parameters.put("DomainName", dns);parameters.put("Version", "-01-09");parameters.put("AccessKeyId", "testId");//输入你的 Access Key IDparameters.put("Timestamp", formatIso8601Date(new Date()));parameters.put("SignatureMethod", "HMAC-SHA1");parameters.put("SignatureVersion", "1.0");parameters.put("SignatureNonce", UUID.randomUUID().toString());parameters.put("Format", "XML");// 对参数进行排序,注意严格区分大小写String[] sortedKeys = parameters.keySet().toArray(new String[]{});Arrays.sort(sortedKeys);final String SEPARATOR = "&";// 生成stringToSign字符串StringBuilder stringToSign = new StringBuilder();stringToSign.append(HTTP_METHOD).append(SEPARATOR);stringToSign.append(percentEncode("/")).append(SEPARATOR);StringBuilder canonicalizedQueryString = new StringBuilder();for(String key : sortedKeys) {// 这里注意对key和value进行编码canonicalizedQueryString.append("&").append(percentEncode(key)).append("=").append(percentEncode(parameters.get(key)));}// 这里注意对canonicalizedQueryString进行编码stringToSign.append(percentEncode(canonicalizedQueryString.toString().substring(1)));String signature = getSignature(stringToSign.toString());canonicalizedQueryString.append("&").append("Signature").append("=").append(percentEncode(signature));return canonicalizedQueryString.toString();}private static final String ISO8601_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";private static String formatIso8601Date(Date date) {SimpleDateFormat df = new SimpleDateFormat(ISO8601_DATE_FORMAT);df.setTimeZone(new SimpleTimeZone(0, "GMT"));return df.format(date);}private static final String ENCODING = "UTF-8";private static String percentEncode(String value)throws UnsupportedEncodingException{return value != null ?URLEncoder.encode(value, ENCODING).replace("+", "%20").replace("*", "%2A").replace("%7E", "~"): null;}// 以下是一段计算签名的示例代码private static String getSignature(String stringToSign) throws InvalidKeyException, UnsupportedEncodingException, NoSuchAlgorithmException{final String ALGORITHM = "HmacSHA1";final String ENCODING = "UTF-8";String key = "bLJ15dkZHfnMEmaKUYRXh7KCjr4vYe&";//注意 key = Access Key Secret +"&"Mac mac = Mac.getInstance(ALGORITHM);mac.init(new SecretKeySpec(key.getBytes(ENCODING), ALGORITHM));byte[] signData = mac.doFinal(stringToSign.getBytes(ENCODING));String signature =new String(Base64.encodeBase64(signData));return signature;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。