开发者社区 问答 正文

应用研发平台EMAS有http调用方式的链接demo吗?

应用研发平台EMAS有http调用方式的链接demo吗?

展开
收起
嘟嘟嘟嘟嘟嘟 2024-02-07 10:31:52 72 分享 版权
阿里云 AI 助理回答

是的,应用研发平台 EMAS 提供了 HTTPDNS 服务的调用方式以及相关的 Demo 示例,帮助开发者快速集成和使用该功能。

HTTPDNS 调用方式

HTTPDNS 服务支持通过 HTTP API 的方式进行调用。以下是调用的基本信息:

  1. 服务地址

    • IPv4 接入地址:httpdns-api.aliyuncs.com
    • IPv4&IPv6 双栈接入地址:httpdns-dualstack.aliyuncs.com
  2. 通信协议

    • 支持 HTTP 和 HTTPS,推荐使用 HTTPS 以增强安全性。
  3. 请求方法

    • 使用 HTTP GET 方法,所有请求参数需在 URL 中传递。
  4. 请求参数

    • 每个请求需要指定操作类型(如 AddDomain),并包含公共请求参数和特定操作所需参数。
    • 公共请求参数包括:
      • Format:返回值类型,支持 JSON 和 XML,默认为 XML。
      • Version:API 版本号,例如 2016-02-01
      • AccessKeyId:访问服务的密钥 ID。
      • Signature:签名结果串,详见签名机制。
      • SignatureMethod:签名方式,支持 HMAC-SHA1。
      • Timestamp:ISO8601 标准的 UTC 时间戳。
      • SignatureVersion:签名算法版本,例如 1.0。
      • SignatureNonce:唯一随机数,防止网络重放攻击。
  5. 字符编码

    • 请求和响应均使用 UTF-8 编码。

HTTPDNS Demo 示例

EMAS 提供了多个平台的 Demo 示例项目,方便开发者了解如何在不同平台上集成 HTTPDNS 功能。以下是获取和使用 Demo 的步骤:

  1. 下载 Demo

    • 开发配置 菜单中点击 下载Demo
    • 选择对应平台的 Demo 下载到本地并运行。
  2. 支持的平台

    • Android SDK
    • iOS SDK
    • HarmonyOS SDK
    • C SDK
    • HTTP API
  3. 示例代码

    • 如果您希望直接查看 HTTPDNS 的使用示例,可以通过 GitHub 获取相关代码。例如:

      • Android SDK 示例代码展示了如何通过懒更新策略实现 DNS 解析 0 延迟。
      • 示例代码片段如下:
      public class NetworkRequestUsingHttpDNS {
         public static void main(final Context ctx) {
             try {
                 // 设置 APP Context 和 Account ID,并初始化 HTTPDNS
                 httpdns = HttpDns.getService(ctx, accountID);
      
                 // 自定义降级逻辑
                 DegradationFilter filter = new DegradationFilter() {
                     @Override
                     public boolean shouldDegradeHttpDNS(String hostName) {
                         return hostName.equals("www.taobao.com") || detectIfProxyExist(ctx);
                     }
                 };
                 httpdns.setDegradationFilter(filter);
             } catch (Exception e) {
                 e.printStackTrace();
             }
         }
      }
      

验证 HTTPDNS 服务

在完成集成后,您可以通过以下方式验证 HTTPDNS 服务是否正常工作:

  1. 构造测试 URL:

    https://203.107.1.33/${accountId}/d?host=${host}
    
    • ${accountId} 替换为您控制台中的实际值。
    • ${host} 替换为需要解析的域名。
  2. 预期返回结果:

    • 如果解析成功,返回类似以下内容:
      [
       {
           "host": "www.aliyun.com",
           "ips": ["192.X.X.1", "192.X.X.2"],
           "ttl": 596,
           "origin_ttl": 600,
           "client_ip": "192.168.XX.XX"
       }
      ]
      
    • 如果解析失败,返回类似以下内容:
      {
       "host": "www.example.com",
       "ips": [],
       "ttl": 300,
       "client_ip": "140.X.X.236"
      }
      

总结

通过上述步骤,您可以轻松获取 HTTPDNS 的调用方式和 Demo 示例,并完成服务的集成与验证。如果需要更详细的指导,建议参考官方文档或联系技术支持。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
还有其他疑问?
咨询AI助理