活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      天翼云远程监控_相关内容
      • 创建/删除标签和标签组
        功能 说明 为域名绑定标签,方便您对域名进行分组管理。 当标签不再适用于管理和检索域名时,可以将标签和域名进行解绑。 在域名列表中,通过标签快速筛选域名,进行分类管理。 在控制台统计分析的用量查询和热门分析页面中,通过标签快速筛选出某类域名的各类监控数据(如:流量、带宽等)。
        来自:
        帮助文档
        全站加速
        用户指南
        域名管理
        标签管理
        创建/删除标签和标签组
      • 使用限制
        配额项 默认配额 单个天翼云账号允许创建的最大模板个数 100 单个模板最大版本个数 100 每个模板内容最大值 1MB 每个模板文件内容最大值 128KB 每个模板文件数量最大值 50 每个模板参数个数 100 模板参数默认值长度最大值 5KB 每个模板输出个数 100 资源栈单次执行输出内容最大值 1MB 单个天翼云账号允许创建的最大资源栈个数 100 单个资源栈事件保留 30天/10000条/单条最大2KB
        来自:
        帮助文档
        资源编排ROS
        产品介绍
        使用限制
      • 诊断服务端报错问题
        针对服务端报错问题进行诊断 诊断服务端报错问题 问题描述 网页抛错,尤其是5xx错误是互联网应用最常见的问题之一。5xx错误通常发生于服务端。服务端是业务逻辑最复杂,也是整条网络请求链路中最容易出错、出了错之后最难诊断原因的地方。运维工程师或研发工程师往往需要登录机器查看日志来定位问题。 对于逻辑不太复杂、上线时间不长的应用来说,登录机器查看日志的方式能够解决大部分网站抛错的问题。但在以下场景中,传统的问题诊断方式往往没有用武之地。 1. 在一个分布式应用集群中,需知道某一类错误的发生时间和频率。 2. 某系统已运行了很长时间,但是不想关心遗留的异常,只想知道今天和昨天相比、发布后和发布前相比多了哪些异常。 3. 查看一个异常对应的Web请求和相关参数。 4. 客服人员提供了一个用户下单失败的订单号,分析该用户下单失败的原因。 解决方案 为应用安装APM探针后,即可在不改动应用代码的情况下,利用应用性能监控的异常自动捕捉、收集、统计和溯源等能力,全面掌握应用的各种错误信息。 步骤一:安装APM探针 为应用安装APM探针后,才能对应用进行全方位监控。请根据实际需求选择一种方式来安装探针。 步骤二:查看关于应用异常的统计信息 为应用安装APM探针后,APM会收集和展示选定时间内应用的总请求量、平均响应时间、错误数、实时实例数、FullGC次数、慢SQL次数、异常次数和慢调用次数,以及这些指标和上一天的环比、上周的同比升降幅度。请按以下步骤查看应用异常的统计信息。 1. 在应用总览页面的概览页签下方,查看异常的总数、周同比和日同比数据,如下图所示。 2. 滑动页面至概览页签底部的统计分析区域的异常类型,查看各类型异常出现的次数,如下图所示。 3. 在导航栏,点击应用详情 ,选择异常错误分析,查看异常统计图、错误数、异常堆栈等,如下图所示。
        来自:
        帮助文档
        应用性能监控 APM
        最佳实践
        诊断服务端报错问题
      • 云间高速相关术语解释
        什么是资源池互联专网? 资源池专网是中国电信建设的与公众互联网物理隔离的独立网络,用于连接全国天翼云资源池,为天翼云用户提供高可靠的跨域资源池之间的东西向高带宽能力。
        来自:
        帮助文档
        云间高速(尊享版)
        产品介绍
        云间高速相关术语解释
      • 绑定子账号
        参数 是否必填 参数类型 说明 示例 下级对象 pubUserOid 是 String 用户ID email 是 String 天翼云账号邮箱,请使用注册天翼云账号的邮箱,且该账号在当前资源池未开通桌面服务。字符数限制:[1,100]
        来自:
        帮助文档
        天翼云电脑(政企版)
        API参考
        API
        2023-10-30
        用户
        绑定子账号
      • 日期和时间函数(1)
        unit说明 unit 说明 year 年 quarter 季度 month 月 week 周 day 天 hour 小时 minute 分钟 second 秒 interval说明 interval 说明 year 年 quarter 季度 month 月 week 周 day 天 hour 小时 minute 分钟 second 秒 millisecond 毫秒 microsecond 微秒
        来自:
      • redis-cli连接方式
        本节主要介绍Redis实例如何通过rediscli连接 rediscli是原生Redis自带的命令行工具,您可以在ECS实例或本地设备上通过rediscli连接分布式缓存Redis版,进行数据管理。 前提条件 1. 设置Redis账号密码。可选择以下任意方式: 设置Redis默认账号的密码,具体操作请参考重置缓存实例密码。 创建新的账号密码,具体操作请参考创建与管理账号。 2. 获取Redis连接信息。 使用专有网络连接:在Redis控制台,获取该实例的专有网络连接地址,具体操作请参考查看连接地址。 使用公网连接时:在Redis控制台,绑定并获取该实例的公网IP,具体操作请参考绑定公网IP。 说明 说明:Redis实例默认仅提供专有网络连接地址,通过公网连接时您需要手动申请公网连接地址,具体操作请查看 操作步骤 1. 登录安装rediscli的设备,例如天翼云弹性云主机实例或本地设备。 2. 进入rediscli安装目录下。 Windows:打开命令行窗口,进入rediscli所属的目录。 Linux:进入..redissrc所属的目录,例如cd /home/redis5.0.5/src。 3. 获取连接信息并执行下述命令连接Redis实例: rediscli h ip p port 各参数说明如下: 参数 说明 获取方式 ip Redis实例的连接地址 参见查看连接地址 port Redis实例的端口号 端口号。 4. 执行下述命令完成密码验证: AUTH password
        来自:
        帮助文档
        分布式缓存服务Redis版
        用户指南
        连接实例
        redis-cli连接方式
      • 操作类
        手机平板接入SSL VPN的注意事项有哪些? 手机版本有要求:支持安卓4.0或以上版本,支持苹果iOS9.0+。 手机上的EasyConnect客户端需要是ec7.X的版本,手机上下载EasyConnect的App方法是:苹果手机在App Store里面下载,安卓手机在谷歌官方电子市场里面下载,或安卓手机打开SSL VPN客户端网页,点击本地下载。 苹果iOS手机安全性比较高,有指纹解锁,在使用EasyConnect接入的时候弹出allow的时候必须点击allow。 移动端用户需要关联L3VPN类型资源,才能正常使用SSL VPN。 SSL VPN客户端默认的接入端口为何无法访问? 客户端拨入SSL VPN隧道的默认端口是TCP443,打开方式是电脑打开浏览器,地址栏输入 VPN后请在 > SSL VPN选项 > 系统选项 > 接入选项”的用户访问入口修改下SSL客户端接入端口,将443改成4433或其他端口,然后在天翼云的SSL VPN云主机安全组里面放通相应的SSL客户端端口(比如改成了TCP4433端口,那客户端接入SSL VPN隧道是打开 客户端环境诊断修复工具? 如果客户端环境比较复杂,无法快速定位问题实现修复,则可以通过客户端环境诊断修复工具,进行一键排查修复。 在SSL VPN客户端登录界面右上角,选择诊断工具,在弹出的网页中点击蓝色的“点击下载”按钮下载诊断工具。
        来自:
        帮助文档
        SSL VPN
        常见问题
        操作类
      • Windows安装客户端
        本小节介绍SSL VPN的Windows安装客户端操作方法。 下载并安装Windows客户端 1. Windows电脑首次接入SSL VPN隧道时,在客户端电脑上打开浏览器,地址栏输入SSL VPN客户端接入地址 VPN云主机的公网IP,默认的端口是443,如果修改了默认端口,例如TCP443端口改为了4433端口,则接入地址是 2. 打开SSL VPN接入地址后会显示VPN客户端软件EasyConnect的下载,点击“下载”安装运行,如下图所示。 接入SSL VPN 1. 双击客户端图标。 2. 服务器地址输入vSSL的接入地址(以下截图中的IP为示例地址),然后点击右侧“连接”按钮。 3. 如下图中,输入SSL VPN客户端的用户名和密码信息,然后点击“登录”就可以接入SSL VPN隧道了。 4. 接入后,在电脑右下角就可以看到EasyConnect的图标,显示已连接的状态。右击图标点击“显示资源”可以看到自己的SSL用户可以访问到的资源权限。然后客户端电脑上输入天翼云业务服务器的内网私有IP地址访问即可。
        来自:
        帮助文档
        SSL VPN
        快速入门
        客户端安装方法
        Windows安装客户端
      • 手机平板安装客户端
        本小节介绍SSL VPN的手机平板安装客户端操作方法。 安卓手机平板安装客户端 方法1 PC端访问SSL VPN客户端接入地址 (IP地址就是搭建SSL VPN 云主机的公网IP,默认的端口是443,如果TCP443端口改成了4433端口或其他端口,打开方式是 方法2 登录官网下载EasyConnect的App软件,官网下载地址见这里。 方法3 安卓手机平板上,打开浏览器输入SSL VPN客户端接入地址 VPN控制台管理页面,“系统设置 > SSL VPN选项 > 系统选项 > 接入选项”里面勾选启用http端口。 苹果iOS手机平板 下载客户端 苹果iOS手机平板上,打开苹果手机上的App Store应用市场,搜索EasyConnect,然后下载安装。 使用方法 1. 手机平板上安装EasyConnect客户端软件后,在手机平板桌面找到“EasyConnect”的图标。 2. 打开运行,输入SSL VPN客户端的接入地址 VPN的用户名和密码,点击“登录”,如下图所示。 3. 接入显示成功后,就可以在资源列表中看到自己所访问的资源权限,然后手机平板上输入天翼云业务服务器的内网私有IP地址访问即可。
        来自:
        帮助文档
        SSL VPN
        快速入门
        客户端安装方法
        手机平板安装客户端
      • 配置迁移实例
        本页详细介绍如何配置迁移实例。 基本流程 用户在成功购买天翼云DTS迁移实例之后,实例默认是“待配置”状态,需要完成实例的配置,才可以真正实现数据的迁移。 前置条件 1. 准备好待迁移的数据库实例。 2. 已成功订购天翼云DTS实例。 3. 其他合理且必要的条件。 具体步骤 1、登录天翼云官网门户,进入数据传输服务DTS控制台。 登录天翼云 在天翼云门户首页顶部菜单栏,点击“控制中心”进入【控制中心】页面。 在【控制中心】页面顶部的资源池下拉列表框中选择相应资源池(目前支持上海36/华东1/西南1/华北2/长沙42/杭州7 ),找到页面中的“数据库”服务列表,选择“数据传输服务DTS”,进入DTS控制台。 2、进入数据迁移实例列表页面。 在控制台左侧菜单栏点击“数据迁移”,进入【数据迁移】实例列表页面。 3、选择待配置实例,点击“实例配置”进入实例配置页面。 DTS实例订购成功后,选择对应实例ID的操作,点击“实例配置”,进入配置页面。
        来自:
        帮助文档
        数据传输服务DTS
        用户指南
        数据迁移
        实例配置和实例编辑
        配置迁移实例
      • 短视频场景下的QUIC实践
        天翼云某短视频客户使用QUIC效果 随着短视频业务的飞速发展,视频平台更加注重视频的播放效果,QUIC协议可以有效解决跨网、视频卡顿问题,提升视频用户播放体验。 天翼云平台某短视频客户使用QUIC后,整体效果优化较为明显,首屏优化20%,卡顿率降低5%。 注意 不同客户业务情况有所差异,使用QUIC后的提升情况各不相同,本文数据仅供参考。
        来自:
        帮助文档
        CDN加速
        最佳实践
        短视频场景下的QUIC实践
      • 安全与加速配置常见问题
        Web防护支持的QPS上限是多少? 边缘安全加速平台提供的Web防护基于边缘节点,并且结合智能调度,支持动态调整边缘节点,无缝扩展QPS 防护能力,可达亿级别规模。 并依托天翼云的云安全节点形成云安全网络,结合云端大数据分析平台,为用户提供应对 Web 攻击、入侵、漏洞利用、挂马、篡改、后门、爬虫、域名劫持等网站及 Web 业务安全防护问题,从而保障网站安全。区别于传统WAF需要在源站前端部署,Web应用防火墙把安全能力赋能在所有边缘节点。 利用分布式节点部署使计算能力更强,有效降低源站计算压力,提升了用户访问质量的同时保护了源站数据的安全。 CC防护支持的QPS上限是多少? 边缘安全加速平台提供的CC防护能力不限制QPS上限。
        来自:
        帮助文档
        边缘安全加速平台
        常见问题
        安全与加速配置常见问题
      • 权限描述
        本文介绍了天翼云APP涉及的权限。 天翼云APP在使用过程中,需要用户对部分应用权限进行授权。 iOS 相机权限:授权后可使用扫一扫功能和活体认证功能 相册权限:授权后可在新建工单时上传图片 安卓 拨打手机权限:授权后可快捷拨打客服电话 使用摄像头权限: 授权后可使用扫一扫功能和活体认证功能 存储空间权限: 授权后可上传/发送图片或文件功能 麦克风权限:授权后可使用数字人语音转文字功能
        来自:
        帮助文档
        天翼云APP
        产品简介
        权限描述
      • 查询用户登录记录列表v3
        接口功能介绍 假设endTime代表前一天23点59分59秒(UTC+8),时间范围相关说明如下: 可供查询的数据时间范围是:[endTime 180 天, endTime]。 startTime的默认值是:endTime 30天。 endTime的默认值是:endTime。 startTime和endTime与连接时间的关系:startTime < startConnectTime,startConnectTime < endTime。 考虑到存在延迟,如需要完整导出某天的连接会话记录,建议延后至少24小时进行导出,导出时指定时间范围(UTF+8):[此天0点, 此天23点59分59秒]。 单次查询的时间间距不可超过30天。 接口约束 无 URI GET /v3/statistic/describeDesktopConnectLog 路径参数 无 Query参数 参数 是否必填 参数类型 说明 示例 下级对象 regionId 是 String 资源池ID。 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx pubUserOids 否 String 用户ID。取值由用户ID组成一个JSON数组,最多支持10个ID,ID之间用半角逗号(,)隔开。 startTime 否 String 起始时间。支持2种格式:秒级UNIX时间戳;以ISO 8601为标准,并使用UTC+0时间,格式为yyyyMMddTHH:mm:ssZ。 1700642186 endTime 否 String 结束时间。支持2种格式:秒级UNIX时间戳;以ISO 8601为标准,并使用UTC+0时间,格式为yyyyMMddTHH:mm:ssZ。 20231122T16:36:29Z limit 否 Integer 返回最大记录数。取值范围:[1, 100]。默认值:10。 10 cursor 否 String 游标。指定为上一个请求返回的nextCursor,获取下一页,达到翻页效果。未设置时默认返回首页数据。 ZWNwYzpudW1iZXI6MQ
        来自:
        帮助文档
        天翼云电脑(政企版)
        API参考
        API
        2023-10-30
        查询统计
        查询用户登录记录列表v3
      • 开通服务
        本文为知识库问答的服务开通流程介绍。 1. 创建天翼云账号 如果您还没有天翼云账号,请访问天翼云官网,点击右上角的“免费注册”按钮以创建账号,并完成实名制认证。 2. 开通知识库问答服务 步骤一: 在知识库问答产品详情页,点击“立即开通”按钮,进入业务开通页面以开通知识库问答服务。 步骤二: 补充实例的基础信息后,点击“下一步”。 步骤三: 点击“立即创建”,完成产品服务的开通。
        来自:
        帮助文档
        知识库问答
        快速入门
        开通服务
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response java package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign java package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java java package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        如何调用API
        Java调用示例
      • 功能特性
        反向解析 反向解析是指从IP地址到域名的映射。通过查询PTR记录可以获取特定IP地址对应的域名信息。在内网DNS中,与常见的A记录(将域名映射到IP地址)相反,PTR记录被用于实现IP地址到域名的映射。当进行反向解析时,查询特定IP地址的PTR记录可以获得该IP地址对应的域名。这种记录类型的存在使得可以通过IP地址来查找关联的域名,而不仅仅是通过域名查找IP地址。 递归 内网DNS解析的递归模块,主要为云上VPC环境中的计算实例(如云主机)提供出公网的域名递归解析服务。该服务为天翼云VPC内网解析场景默认提供的免费服务,但不承诺服务SLA。您也可以通过修改计算实例上的DNS服务器IP地址,实现使用其他公共DNS服务器做解析(此时该计算实例将整体无法使用天翼云内网DNS提供的内网解析服务)。 记录集 记录集(Record Set)是指一组资源记录的集合,这些资源记录属于同一类型且域名相同,用于定义域名支持的解析类型以及解析值。当您已经创建完内网域名,需要对其进行域名级别的拓展或记录域名的详细信息,如创建对应的A记录、CNAME记录等,可以通过创建记录集来实现。内网DNS支持的记录集类型包括:A、CNAME、MX、AAAA、TXT、SRV、PTR。 记录集类型 适用场景 描述 A 主机记录,也可用作低成本负载均衡方案。 指定域名对应的IPv4地址,用于将域名解析到IPv4地址。 CNAME 别名记录,可用于隐藏主域名。 指定域名的别名,用于将域名解析到另一域名,或者多个域名映射到同一域名上。 MX 邮件交换记录,邮件服务器使用。 指定域名对应的邮件服务器,用于为邮件域名设置邮箱服务器。 AAAA IPv6主机记录,场景等同于A。 指定域名对应的IPv6地址,用于将域名解析到IPv6地址。 TXT 记录DKIM的公钥,用于反电子邮件欺诈。 用于记录域名所有者身份信息,用于域名找回。 用于对域名进行标识和说明,可填写任意的信息。 SRV 应用程序可以根据优先级与权重进行排序,设置访问规则。 记录了具体某台计算机对外提供哪些服务,供用户查询使用。SRV中除了记录服务器的地址,还记录了服务的端口,并且可以设置每个服务地址的优先级和权重。 PTR 反向地址解析。 指定IP地址反向解析记录,用于通过私网IP地址反向查询对应的云服务器。
        来自:
        帮助文档
        内网DNS
        产品简介
        功能特性
      • 负载均衡标签管理
        弹性负载均衡支持编辑标签的操作,本文帮助您快速熟悉负载均衡编辑标签的操作。 操作场景 当您的云环境中存在多个弹性负载均衡器时,编辑使用标签可以帮助您对其进行分类分组管理,对弹性负载均衡器的使用情况进行追踪和优化,提高弹性负载均衡器的管理效率和灵活性。 负载均衡器的编辑标签时,通常需要指定标签键和标签值来标识和分类负载均衡器。标签键用于描述标签的分类或属性,而标签值则用于具体区分不同的负载均衡器。 使用须知 您可以最多添加10个标签。 标签的“键”和“值”是一一对应的,其中“键”值是唯一的。 添加标签 1. 点击天翼云门户首页的“控制中心”,输入登录的用户名和密码,进入控制中心页面。 2. 在管理控制台上方单击图标,选择区域,本文操作均选择华东华东1。 3. 在系统首页,选择“网络>弹性负载均衡>负载均衡器”。 4. 在“负载均衡器”列表页面,单击负载均衡器所在行的“更多>编辑标签”。 5. 输入标签键和标签值,点击“确定”。 6. 在控制中心的“弹性负载均衡”界面的信息列表,还支持对已创建的负载均衡器批量编辑标签/批量解绑标签。
        来自:
        帮助文档
        弹性负载均衡 ELB
        用户指南
        负载均衡器
        负载均衡标签管理
      • 防护配置最佳实践
        CC防护 业务正常运行时,建议采用“常规”防护模式。 由于CC防护的“紧急”防护模式可能产生一定量的误拦截,如果您的业务为App业务或Web API服务,不建议您开启“紧急”防护模式。如果使用CC安全防护的正常模式仍发现误拦截现象,建议您使用“精准访问控制”功能放行特定类型请求。 说明 业务接入WAF防护一段时间后(一般为23天),可以通过分析业务日志数据(例如,访问URL、单个IP访问QPS情况等)评估单个IP的请求QPS峰值,提前通过自定义CC防护策略配置限速策略,避免遭受攻击后的被动响应和临时策略配置。 BOT防护 当您的业务经常受到爬虫骚扰或面临数据泄露、被篡改的风险,针对防护需求,建议您为网站开启BOT防护功能。BOT防护设置支持公开类型、自定义会话策略两大类防护策略。 公开类型:云WAF提供已知公开的BOT大类,包括Web爬虫、扫描器、语言库等爬虫类型,用户可以根据自身需求对公开BOT类型设置防护状态及防护动作,WAF将对命中公开类型的BOT请求进行相应处理。 自定义会话策略:提供自定义协议特征、自定义会话特征两类防护策略,每种类型特征包含多个判定维度,用户可以根据实际业务情况设置协议特征规则状态、自定义会话策略,WAF将对命中防护策略的请求进行处理。
        来自:
      • 增强版
        磁盘类型 标准资费(按月)元/GB/月 标准资费(按天)元/GB/天 标准资费(按年)元/GB/年 标准资费(按需)元/GB/小时 高IO(SAS) 0.4 0.013151 4.8 0.000900 超高IO(SSD) 1.2 0.039452 14.4 0.001700
        来自:
        帮助文档
        分布式缓存服务Redis版
        计费说明
        产品资费
        增强版
      • 基础版
        磁盘类型 标准资费(按月)元/GB/月 标准资费(按天)元/GB/天 标准资费(按年)元/GB/年 标准资费(按需)元/GB/小时 高IO(SAS) 0.4 0.013151 4.8 0.000900 超高IO(SSD) 1.2 0.039452 14.4 0.001700
        来自:
        帮助文档
        分布式缓存服务Redis版
        计费说明
        产品资费
        基础版
      • 服务条款
        本节是关于天翼云智能语音交互服务条款介绍。 产品服务条款请参见天翼云智能语音交互服务协议。
        来自:
        帮助文档
        智能语音交互
        相关协议
        服务条款
      • 基础数据集
        前置条件 1. 使用前,您的租户账号需在天翼云存储控制台开通并创建相应的存储 ,详见++对象存储快速入门++、++并行文件服务快速入门++。 2. 已在本平台完成相关产品的委托授权。 操作说明 基础数据集统一走挂载模式,需要您提前在存储的管理面完成数据导入、记录路径等前置操作,您在本平台只需填写已有存储的路径,平台将在任务中自动挂载该路径。基础数据集的存储方式包括普通存储、智算存储与其他存储: 普通存储(ZOS): 账号自有存储:指租户在天翼云官网同资源池下开通的对象存储,用于数据长期存储和备份,完成委托授权后您可在本平台直接使用。 平台共享存储:本平台赠予您体验的存储,默认集群额度为 300G,是所有用户共享的存储,您的用量受限且不支持扩容,超出用量后需自行前往对象存储购买自有存储。平台后续将逐渐废弃此类存储,建议您直接使用自有存储。 智算存储(HPFS): 账号自有存储:指租户在天翼云官网同资源池下开通的HPFS存储,常用于大模型的开发和训练等数据密集性的高性能计算场景,完成委托授权后您可在本平台直接使用。如需使用开发机和训练任务功能,请提前将数据、模型、代码导入智算存储中。训练时需要与文件存储频繁交互,请确保存储状态可用且充足。 平台共享存储:您在本平台开通的共享存储,默认集群额度为 512 G,是所有用户共享的存储,您的用量受限且不支持扩容,超出用量后需自行前往HPFS购买自有存储。平台后续将逐渐废弃此类存储,建议您直接使用自有存储。 其他存储:天翼云的集群分为两类:天翼云自建集群、与合作伙伴共营的其他集群,其中,自建集群对应自有存储,其他集群对应其他存储。其他存储便是指其他集群中对应配置的存储。该存储与集群强相关,您在开通相应的集群后平台会自动打通与存储的关联,不需要进行委托授权步骤。 上述可使用的存储类型都与集群强相关,例如集群A支持自有ZOS、自有HPFS,集群B支持自有其他存储,您不能在集群B下使用自有ZOS。您可切换顶部集群查看该集群支持的存储类型,也可事先联系您的客户经理了解集群的存储类型支持情况。
        来自:
        帮助文档
        训推服务
        用户指南
        智算资产
        我的数据集
        基础数据集
      • SDK安装
        PHP版本要求 天翼云媒体存储PHP SDK 要求使用 PHP 5.5 或更高版本。可以从PHP官网 下载最新版本PHP。 安装方式 方式一:官网下载PHPSDK 在天翼云官网下载 xosphpsdk,下载地址: xosphpsdk.zip 解压压缩包至任意目录,并在您的 php 脚本中包含解压目录中自动加载工具: php 注意:使用PHP 5.5版本建议使用官网下载的PHPSDK,需要设置默认timezone php // 使用php5.5需要设置默认timezone if(!iniget('date.timezone')){ datedefaulttimezoneset('UTC'); } 方式二:添加AWS s3依赖 天翼云媒体存储兼容AWS s3接口,您可以通过AWS s3接口使用天翼云媒体存储。若您需要使用AWS s3接口,建议通过composer方式安装AWS s3 php sdk。您可以从 < 获取 composer 的最新版本下载地址、安装方式与用户文档。 在确保 composer 已经安装完成后,在工程根目录下执行以下命令安装 AWS s3 php sdk: php composer require aws/awssdkphp
        来自:
        帮助文档
        媒体存储
        SDK参考
        PHP SDK
        SDK安装
      • Pod标签与注解
        注解 说明 默认值 kubernetes.AOM.log.stdout 容器标准输出采集参数,不配置默认将全部容器的标准输出上报至AOM,可配置采集指定容器或全部不采集。 示例: 全部不采集kubernetes.AOM.log.stdout: '[]' 采集container1和container2容器。kubernetes.AOM.log.stdout: '["container1","container2"]' metrics.alpha.kubernetes.io/customendpoints AOM监控指标上报参数,可将指定指标上报是AOM服务。 prometheus.io/scrape Prometheus指标上报参数,值为true表示当前负载开启上报。 prometheus.io/path Prometheus采集的url路径。 /metrics prometheus.io/port Prometheus采集的endpoint端口号。 prometheus.io/scheme Prometheus采集协议,值可以填写http或https kubernetes.io/ingressbandwidth Pod的入口带宽 kubernetes.io/egressbandwidth Pod的出口带宽
        来自:
        帮助文档
        云容器引擎
        用户指南
        工作负载
        Pod标签与注解
      • 计费方式
        本章节主要介绍函数工作流按需计费的模式。 按需计费 收费方式 (1)预存后付费方式:提前充值现金到天翼云账户中,现金账户余额不低于100元,之后系统按照用户实际使用量进行结算。 (2)计费周期:按请求次数、运行时间和节点执行次数进行计费,其中请求次数100万以内为免费,超过100万次按需计费;计量时间400000GBS以下为免费,超过400000GBS按需计费;函数工作流节点执行次数低于5000次为免费,超过5000次按需计费。 函数计算资源消耗是函数所选内存和函数执行时间的乘积,执行时间是从函数代码开始执行的时间算起到其返回或终止的时间为止,计量的粒度是1毫秒,不足1毫秒按1毫秒计费,例如函数执行了0.5毫秒,会按照1毫秒计费。例如函数内存规格为512MB,函数执行1秒的计算资源消耗为:0.5GB1秒 0.5GB秒,其他内存规格依此类推。 账户欠费 如用户账户出现欠费,账户一旦充值,系统将会自动优先扣除欠费金额。 提醒/通知规则 (1)账户欠费通知:当用户欠费时,系统会向用户发送1次欠费提醒,并在欠费的第2天、第4天、第6天各发送1次欠费提醒。 (2)提醒及通知方式:以邮件和短信方式告知用户,请及时关注您的短信及邮件。
        来自:
        帮助文档
        函数工作流
        计费说明
        计费方式
      • QUIC协议
        工作原理 目前,天翼云全站加速产品开放使用的是七层协议的QUIC,其工作原理如下图所示,主要应用在客户端与全站加速平台边缘节点的交互,主要适用于弱网环境下的传输优化。 适用场景 如果您希望在弱网环境下拥有更高的性能,如更快的首屏、首包,更快的传输效率,可以使用QUIC接入全站加速平台。 全站加速产品支持的QUIC类型 目前,天翼云全站加速产品同时支持IETF QUIC和GOOGLE QUIC,以方便不同的客户接入。 GOOGLE QUIC支持的版本号为Q043、Q046、Q050。 IETF QUIC支持的版本号为h329和h3v1,IETF QUIC是互联网标准版本,强烈建议您使用IETF QUIC。 注意事项 如果您使用浏览器接入,请使用支持QUIC协议的浏览器,如Chrome、Microsoft Edge等。 如果您使用自研App接入,则App需要自行实现QUIC协议栈或者集成支持QUIC协议的网络库,例如:quicgo、ngtcp2、quiche、quant、kwik、aioquic、picoquic等。 配置说明 如您需要配置使用QUIC协议,请提交工单给天翼云客服,由其帮您配置。 提交工单时,请您提供如下信息: 参数名 说明 QUIC版本号 配置需开启的QUIC版本,例如:H3v1。
        来自:
        帮助文档
        全站加速
        用户指南
        域名管理
        QUIC协议
      • 按需计费
        本节主要介绍按需计费 1、收费方式 (1)预存后付费方式:提前充值现金到天翼云账户中,现金账户余额不低于100元,之后系统按照用户实际使用量进行结算。 (2)计费周期:按小时计费,以自然小时为计费单位(均以北京时间为准),不满一小时按照一小时计费。费用从用户账户现金余额中扣费。开通时间建议整点开通,开通不足一个自然小时,按一小时收费。提前删除也按照自然小时收费。 例如:如果您在1点01分开通,那么时间到2点就算做一个自然小时;如果您在1点58分开通,那么时间到2点也算做一个自然小时,都是按照1个小时收费。所以为了避免您的时间损失,建议您整点后几分钟内开通,在整点前几分钟删除。 2 、删除规则 (1)删除关系型数据库时,数据库的CPU、内存的费用停止计费,其他关联资源继续计费。 (2)数据库删除后,数据不会保留会立即释放资源。 3 、账户欠费 如用户账户出现欠费,账户一旦充值,系统将会自动优先扣除欠费金额。 4 、提醒/通知规则 (1)账户欠费通知:当用户欠费时,系统会向用户发送1次欠费提醒,并在欠费的第2天、第4天、第6天各发送1次欠费提醒。 (2)提醒及通知方式:以邮件和短信方式告知用户,请及时关注您的短信及邮件。
        来自:
        帮助文档
        分布式关系型数据库
        计费说明
        计费方式
        按需计费
      • WAN+4G/5G链路备份
        本节为您介绍WAN+4G/5G链路备份的操作场景、前提条件、操作步骤。 操作场景 智能网关设备可以配置有线带宽WAN和无线4G/5G互为主备链路,例如:设置有线宽带WAN为主用链路,无线4G/5G为备用链路。当主用链路发生故障时,自动切换至备用链路。您可以在智能网关管理控制台查看当前智能网关设备接入Internet的链路状态。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 您已经完成智能网关硬件版的创建,且未进行链路设置。 在购买智能网关时,开启LTE/5G服务。开启后,智能网关硬件设备出厂时会携带一个4G/5G模块,该模块插入智能接入网关设备后可作为有线宽带WAN备份链路,在有线宽带WAN链路故障时为您传输数据。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本节我们选择华东1。 3. 依次选择“网络”,单击“天翼云SDWAN”,进入天翼云SDWAN总览页面。 4. 单击“智能网关”,在智能网关列表页面,单击目标智能网关“操作”列的“链路设置”。 5. 在链路设置界面,根据页面提示进行主备链路设置。 6. 单击“确认”按钮。
        来自:
        帮助文档
        天翼云SD-WAN
        智能网关(硬件版)
        高可用
        WAN+4G/5G链路备份
      • 配置私网SNAT
        SNAT是一种网络地址转换技术,以通过转换后的外网地址访问外部网络,本节为您介绍如何配置私网SNAT。 操作场景 在NAT配置页签,配置SNAT规则后,内部网络可以通过转换后的对外服务IP访问外部网络。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 您已完成智能网关硬件版的创建。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本节我们选择华东1。 3. 依次选择“网络”,单击“天翼云SDWAN”,进入天翼云SDWAN总览页面。 4. 选择“智能网关”,单击目标智能网关实例名称,进入智能网关实例详情页。 5. 单击“NAT配置”页签,单击“配置SNAT规则”,进入配置SNAT规则界面。 6. 在配置SNAT规则页面,根据页面提示配置参数,参数信息如下: 参数 描述 SNAT类型 私网SNAT。 对外服务IP 请填写内网网段转换后的源IP地址,例如:192.168.1.1。注意: 该地址不可与已经配置过的其他对外服务IP具有重复关系,请重新配置。 该地址若与已经配置的子网具有包含关系,可能会造成路由冲突,请知悉风险。 本端私网网段 可选激活时配置的私网网段,支持多选。 7. 点击“确认”按钮。
        来自:
        帮助文档
        天翼云SD-WAN
        智能网关(硬件版)
        云上网络配置
        配置私网SNAT
      • 业务用量
        支持客户对日常关注的带宽流量、请求数、状态码、连接数、并发连接数等,按域名、端口、运营商、地区、时间等维度进行自定义查询,实时感知业务运营状态。 查询范围说明 支持六个月内、最长时间跨度为15天的用量数据查询。 六个月内:是指支持查询的历史数据范围,从当日往前推,六个月内的数据支持查询,而超过六个月的数据不支持查询。 跨度15天:是指单次数据查询的时间跨度,最长时间跨度是15天,即单次最长仅支持查15天的数据。查询起止日期可以是六个月里面的任意连续的日期,最长跨度为15天。 数据概述 业务用量模块,支持客户通过域名、端口、运营商、地区、时间等统计数据,并能导出xlsx或者CSV文件。 带宽与流量 带宽和流量支持客户按域名、端口、运营商、地区、时间为搜索条件,查看带宽流量等数据。 请求次数与QPS 请求次数和QPS支持客户按域名、运营商、地区、时间为搜索条件,查看请求次数和QPS数据。 注意 查询条件为"端口"时,不展示请求次数QPS统计。 连接数与并发连接数 连接数和并发连接数支持客户按端口、运营商、地区、时间为搜索条件,查看连接数和并发连接数数据。 注意 查询条件为“域名”时,不展示连接数与并发连接数统计。
        来自:
        帮助文档
        DDoS高防(边缘云版)
        用户指南
        业务分析
        业务用量
      • 1
      • ...
      • 204
      • 205
      • 206
      • 207
      • 208
      • ...
      • 543
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      出海产品促销专区

      爆款云主机低至2折,高性价比,不限新老速来抢购!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      天翼云奖励推广计划

      加入成为云推官,推荐新用户注册下单得现金奖励

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      GPU云主机

      镜像服务 IMS

      轻量型云主机

      弹性伸缩服务 AS

      弹性高性能计算 E-HPC

      天翼云CTyunOS系统

      训推服务

      推荐文档

      概念

      发票

      订购

      迁移准备

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号