活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      对象存储

      对象存储

        • 最新动态
        • 产品简介
        • 产品定义
        • 基本概念
        • 产品优势
        • 功能特性
        • 产品应用场景
        • 地域说明
        • 产品规格
        • 产品使用限制
        • 与其他服务的关系
        • 产品能力地图
        • 计费说明
        • 计费项
        • 存储费用
        • 流量费用
        • 请求费用
        • 数据取回费用
        • 计费模式
        • 按需计费
        • 包年包月(资源包)计费
        • 资源包概述
        • 资源包购买
        • 查看资源包详情
        • 资源包续订
        • 资源包退订
        • 查看消费明细
        • 欠费
        • 常见问题
        • 快速入门
        • 入门流程
        • 准备工作
        • 开通对象存储服务
        • 获取访问密钥(AK/SK)
        • 查询终端节点(Endpoint)
        • 用户配额
        • 工具下载及使用
        • 创建桶
        • 上传文件
        • 下载文件
        • 删除文件
        • 删除桶
        • 常用实践
        • 用户指南
        • 使用方式
        • 访问规则
        • 存储类别
        • 统计数据
        • 桶管理
        • 桶概述
        • 创建桶
        • 列举桶
        • 桶概览
        • 桶配额
        • 删除桶
        • 对象管理
        • 对象概述
        • 新建目录
        • 上传文件
        • 下载文件
        • 其他文件管理操作
        • 列举文件
        • 复制文件
        • 查看文件
        • 分享文件
        • 解冻归档文件
        • 删除
        • 删除文件
        • 恢复文件
        • 清理碎片
        • 数据管理
        • 生命周期管理
        • 桶清单
        • 数据访问
        • 数据回源
        • 域名管理
        • 数据安全
        • 服务端加密
        • 合规保留
        • 跨域访问设置
        • 多版本管理
        • 防盗链
        • 数据处理
        • 图片处理
        • 监控与日志
        • 监控
        • 日志管理
        • 控制台指南
        • 控制台功能概述
        • 入门操作
        • 入门流程
        • 开通对象存储服务
        • 资源包管理
        • 接入管理(VPC)
        • 创建桶
        • 上传文件
        • 下载文件
        • 删除文件
        • 删除桶
        • 桶管理
        • 创建桶
        • 列举桶
        • 桶概览
        • 搜索桶
        • 桶配额
        • 删除桶
        • 文件管理
        • 新建目录
        • 上传文件
        • 修改文件存储类型
        • 下载文件
        • 其他文件管理操作
        • 列举文件
        • 重命名文件
        • 搜索文件
        • 设置文件标签
        • 通过URL访问对象
        • 复制文件
        • 分享文件
        • 解冻归档文件
        • 删除
        • 删除文件
        • 恢复文件
        • 清理碎片
        • 权限管理
        • 读写权限
        • 桶的读写权限
        • 文件读写权限
        • IAM权限管理
        • 桶策略
        • STS临时授权
        • 桶ACL
        • 数据管理
        • 生命周期管理
        • 生命周期管理简介
        • 生命周期管理配置
        • 桶清单
        • 数据访问
        • 静态页面设置
        • 数据回源
        • 数据回源简介
        • 数据回源配置
        • 数据安全
        • 服务端加密
        • 合规保留
        • 跨域访问设置
        • 多版本管理
        • 对象多版本简介
        • 配置多版本
        • 跨区域复制
        • 防盗链
        • 对象存储迁移服务
        • 服务概览
        • 评估任务教程
        • 创建评估任务
        • 查看评估任务详情
        • 管理评估任务
        • 迁移任务教程
        • 如何创建迁移任务
        • 查看迁移任务详情
        • 查看任务迁移记录
        • 查看迁移失败对象
        • 管理迁移任务
        • 迁移常见问题及处理
        • 使用前常见问题
        • 使用常见问题
        • 迁移异常处理
        • 各云服务商迁移至ZOS教程
        • 天翼云ZOS之间进行迁移
        • 阿里云OSS迁移至天翼云ZOS
        • 腾讯云COS迁移至天翼云ZOS
        • 华为云OBS迁移至天翼云ZOS
        • 天翼云OOS迁移至天翼云ZOS
        • 不同场景的迁移方案
        • 源端归档数据迁移方案
        • 源端增量数据迁移方案
        • 监控与日志
        • 监控
        • 日志管理简介
        • 日志管理配置
        • 数据处理指南
        • 图片处理
        • 图片处理概述
        • 使用方式
        • 图片处理参数
        • 图片缩放
        • 图片水印
        • 图片裁剪
        • 图片旋转
        • 格式转换
        • 信息获取
        • EXIF信息删除
        • 质量变换
        • 亮度变换
        • 渐进显示
        • 高斯模糊
        • 自适应方向
        • 获取平均色调
        • 锐化
        • 对比度
        • 内切圆
        • 圆角矩形
        • 索引切割
        • 图片连续处理
        • 图片持久化
        • SDK参考
        • 开发者文档
        • API参考
        • 调用前必知
        • 概述
        • 终端节点
        • 状态码
        • 错误码
        • 资源池regionID列表
        • API说明
        • API概览
        • 如何调用API
        • 构造请求
        • 认证鉴权
        • Python调用示例
        • Java调用示例
        • API
        • 对象存储整体操作
        • 对象存储服务开通
        • 查询ACCESS_KEY以及SECRECT_KEY
        • 资源池列表查询
        • 访问控制endpoint查询
        • 对象存储资源包询价
        • 对象存储STS访问控制
        • 查询对象存储开通状态
        • Bucket操作
        • 创建桶
        • 查询所有桶
        • 删除桶
        • 查询桶信息
        • 查询桶位置信息
        • 查询桶访问权限
        • 查询对象桶对象数量(不含碎片)
        • 查询对象桶碎片数量
        • 查询桶统计信息
        • Bucket进阶操作
        • 设置桶ACL
        • 获取桶ACL
        • 设置桶生命周期配置
        • 查询桶生命周期配置
        • 删除桶生命周期
        • 设置版本管理
        • 查询桶版本控制配置
        • 暂停版本管理
        • 设置桶日志转存
        • 查询桶日志转存配置
        • 关闭日志转存
        • 设置静态网络托管
        • 查询静态网络配置
        • 删除静态网络配置
        • 创建跨域访问策略
        • 获取跨域访问策略
        • 删除跨域访问策略
        • 设置跨区域复制规则(2022.12.15后开放使用)
        • 获取跨区域复制规则(2022.12.15后开放使用)
        • 获取复制的目标区域(2022.12.15后开放使用)
        • 获取跨区域复制进度(2022.12.15后开放使用)
        • 删除跨区域复制规则(2022.12.15后开放使用)
        • 设置桶的合规保留配置
        • 获取桶的合规保留配置
        • 设置桶策略
        • 获取桶策略
        • 删除桶策略
        • 设置桶标签
        • 获取桶标签
        • 删除桶标签
        • 设置桶的加密配置
        • 获取桶的加密配置
        • 删除桶的加密配置
        • 设置请求者付费模式
        • 获取请求者付费配置信息
        • 设置对象存储防盗链
        • 查看对象存储防盗链
        • 修改桶配额
        • 设置桶的事件总线功能开关
        • Object操作
        • 查看对象列表
        • 查询桶内碎片列表
        • 下载对象
        • 删除对象
        • 删除文件夹
        • 创建文件夹
        • 查询对象版本信息
        • 设置对象ACL
        • 获取对象ACL
        • 设置对象标签
        • 查询对象标签
        • 删除对象标签
        • 设置对象保留期限配置
        • 获取对象保留期限配置
        • 复制对象
        • 批量删除对象
        • 生成对象共享链接/ 对象临时下载链接
        • 设置http头
        • 生成对象上传链接
        • 查询对象是否存在
        • 对象解冻
        • 对象修改存储类型
        • 分段操作
        • 列出上传对象的全部分段
        • 删除碎片
        • 查询正在进行中的分段上传
        • 中止分段上传
        • 完成分段上传
        • 初始化分段上传
        • STS访问控制
        • 创建角色
        • 创建策略
        • 绑定角色策略
        • 查询角色列表
        • 查询角色详情
        • 删除角色
        • 查询策略列表
        • 修改策略
        • 删除策略
        • 查询策略详情
        • 解绑角色和策略
        • 客户端承接策略
        • 对象存储迁移
        • 创建对象存储评估任务
        • 查询对象存储评估任务列表
        • 查询对象存储评估任务详情
        • 对象存储评估任务开始
        • 对象存储评估任务暂停
        • 对象存储评估任务恢复
        • 对象存储评估任务删除
        • 创建对象存储迁移任务
        • 查询对象存储迁移任务列表
        • 查询对象存储迁移任务详情
        • 查询迁移任务的失败对象列表
        • 对象存储迁移任务重试
        • 对象存储迁移任务暂停
        • 对象存储迁移任务恢复
        • 对象存储迁移任务删除
        • 对象存储迁移任务开始
        • 查看对象存储迁移任务历史记录
        • 最佳实践
        • 最佳实践汇总
        • 通过控制台访问对象存储ZOS
        • 云主机通过内网访问对象存储ZOS
        • 通过生命周期策略实现数据自动管理
        • 使用对象存储迁移服务将第三方云厂商数据迁移至对象存储ZOS
        • 修改文件读写权限
        • 数据一致性校验
        • 对象存储ZOS性能优化最佳实践
        • 通过云监控服务实时监控对象存储ZOS信息
        • 大文件分段上传
        • 解决浏览器跨域(CORS)问题的实践
        • 使用预签名URL直传对象存储
        • 获取对象文件的直接地址(下载链接)
        • 批量删除桶内对象
        • VPC内网中使用和公网相同的域名访问对象存储
        • 使用VPCE方式接入对象存储
        • 使用CDN加速访问对象存储ZOS
        • 常见问题
        • 热点问题
        • 售前常见问题
        • 计费常见问题
        • 存储桶常见问题
        • 对象(文件)常见问题
        • 视频专区
        • 相关协议
        • 中国电信天翼云对象存储服务协议
        • 中国电信天翼云对象存储服务等级协议
        • 常用工具
        • zosfs(预览版)
        • zosfs介绍及下载
        • zosfs使用限制
        • zosfs使用说明
        • iSCSI网关
        • NFS网关
        • 对象迁移工具
        • 文件上云迁移工具
        • S3Browser
        • zosutil
        • 自动化策略工具
        • 自助工具
        • 签名工具
        • SDK工具
        • 网络异常工具
        • 文件下载方式工具
        • 文档下载
          无相关产品

          本页目录

          帮助中心对象存储API参考如何调用APIJava调用示例
          Java调用示例
          更新时间 2025-06-11 14:55:34
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-06-11 14:55:34
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接

          1. com.ffcs.ebp.ebpsdk.common.Response

          package com.ffcs.ebp.ebpsdk.common;
          
          import java.util.Map;
          
          
          public class Response {
              private int statusCode;
              private String body;
              private Map<String,String> 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<String, String> getHeaders() {
                  return headers;
              }
          
              public void setHeaders(Map<String, String> headers) {
                  this.headers = headers;
              }
          }
          
          

          2. com.ffcs.ebp.ebpsdk.YunSign

          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<String, Object> headerMap;
              private String afterQuery;
          
              public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map<String, Object> 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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
          
                  SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyyMMdd");
          
                  String singerDate = TIME_FORMATTER.format(eopDate);
          
                  String singerDd = DATE_FORMATTER.format(eopDate);
          
                  //header的key按照26字母进行排序, 以&作为连接符连起来
                  try {
                      String CampmocalHeader = String.format("ctyun-eop-request-id:%s\neop-date:%s\n", 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("UTF-8"), kdate));
          //            System.out.println("---Signature:" + Signature);
                      String signHeader = String.format("%s Headers=ctyun-eop-request-id;eop-date 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.STANDARD_STRICT)
                              .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST))
                              .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build();
                      Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
          
                      Date eopDate = new Date();
          
                      httpGet.setHeader("Content-Type", this.contentType);
                      httpGet.setHeader("ctyun-eop-request-id", this.uuId);
                      httpGet.setHeader("Eop-Authorization", getSign(eopDate));
                      httpGet.setHeader("Eop-date", TIME_FORMATTER.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, "UTF-8"));
                      result.setStatusCode(response.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date();
                      httpGetWithEntity.setHeader("Content-Type", this.contentType);
                      httpGetWithEntity.setHeader("ctyun-eop-request-id", this.uuId);
                      httpGetWithEntity.setHeader("Eop-Authorization", getSign(eopDate));
                      httpGetWithEntity.setHeader("Eop-date", TIME_FORMATTER.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("UTF-8"));
                      httpGetWithEntity.setEntity(httpEntity);
          
                      //执行请求操作,并拿到结果(同步阻塞)
                      response = client.execute(httpGetWithEntity);
                      //获取结果实体
                      HttpEntity entity = response.getEntity();
                      result.setBody(EntityUtils.toString(entity, "UTF-8"));
                      result.setStatusCode(response.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date();
                      httpPost.setHeader("Content-Type", this.contentType);
                      httpPost.setHeader("ctyun-eop-request-id", this.uuId);
                      httpPost.setHeader("Eop-Authorization", getSign(eopDate));
                      httpPost.setHeader("Eop-date", TIME_FORMATTER.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("UTF-8"));
                      httpPost.setEntity(data);
          
                      // httpClient对象执行post请求,并返回响应参数对象
                      httpResponse = httpClient.execute(httpPost);
                      // 从响应对象中获取响应内容
                      HttpEntity entity = httpResponse.getEntity();
                      result.setBody(EntityUtils.toString(entity, "UTF-8"));
                      result.setStatusCode(httpResponse.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date(2032-1900,01,05);
                      httpPut.setHeader("Content-Type", this.contentType);
                      httpPut.setHeader("ctyun-eop-request-id", this.uuId);
                      httpPut.setHeader("Eop-Authorization", getSign(eopDate));
                      httpPut.setHeader("Eop-date", TIME_FORMATTER.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("UTF-8"));
                      httpPut.setEntity(data);
          
                      // httpClient对象执行post请求,并返回响应参数对象
                      httpResponse = httpClient.execute(httpPut);
                      // 从响应对象中获取响应内容
                      HttpEntity entity = httpResponse.getEntity();
                      result.setBody(EntityUtils.toString(entity, "UTF-8"));
                      result.setStatusCode(httpResponse.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date();
                      httpPatch.setHeader("Content-Type", this.contentType);
                      httpPatch.setHeader("ctyun-eop-request-id", this.uuId);
                      httpPatch.setHeader("Eop-Authorization", getSign(eopDate));
                      httpPatch.setHeader("Eop-date", TIME_FORMATTER.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("UTF-8"));
                      httpPatch.setEntity(data);
          
                      // httpClient对象执行post请求,并返回响应参数对象
                      httpResponse = httpClient.execute(httpPatch);
                      // 从响应对象中获取响应内容
                      HttpEntity entity = httpResponse.getEntity();
                      result.setBody(EntityUtils.toString(entity, "UTF-8"));
                      result.setStatusCode(httpResponse.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date();
                      httpDelete.setHeader("Content-Type", this.contentType);
                      httpDelete.setHeader("ctyun-eop-request-id", this.uuId);
                      httpDelete.setHeader("Eop-Authorization", getSign(eopDate));
                      httpDelete.setHeader("Eop-date", TIME_FORMATTER.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, "UTF-8"));
                      result.setStatusCode(response.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date();
                      delete.setHeader("Content-Type", this.contentType);
                      delete.setHeader("ctyun-eop-request-id", this.uuId);
                      delete.setHeader("Eop-Authorization", getSign(eopDate));
                      delete.setHeader("Eop-date", TIME_FORMATTER.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("UTF-8"));
                      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, "UTF-8"));
                      result.setStatusCode(response.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 TIME_FORMATTER = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
                      Date eopDate = new Date();
                      httpHead.setHeader("Content-Type", this.contentType);
                      httpHead.setHeader("ctyun-eop-request-id", this.uuId);
                      httpHead.setHeader("Eop-Authorization", getSign(eopDate));
                      httpHead.setHeader("Eop-date", TIME_FORMATTER.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, "UTF-8"));
                      result.setStatusCode(response.getStatusLine().getStatusCode());
                      Map<String, String> headerMap = new HashMap<String, String>();
                      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 < var3; ++var4) {
                      byte b = var2[var4];
                      String hex = Integer.toHexString(b);
                      if (hex.length() == 1) {
                          sb.append("0");
                      } else if (hex.length() == 8) {
                          hex = hex.substring(6);
                      }
          
                      sb.append(hex);
                  }
          
                  return sb.toString().toLowerCase(Locale.getDefault());
              }
          
              private String getSHA256(String text) {
                  try {
                      MessageDigest md = MessageDigest.getInstance("SHA-256");
                      md.update(text.getBytes(StandardCharsets.UTF_8));
                      return toHex(md.digest());
                  } catch (NoSuchAlgorithmException var3) {
                      return null;
                  }
              }
          
          
              public byte[] HmacSHA256(byte[] data, byte[] key) throws Exception {
                  try {
                      Mac mac = Mac.getInstance("HmacSHA256");
                      mac.init(new SecretKeySpec(key, "HmacSHA256"));
                      return mac.doFinal(data);
                  } catch (Exception e) {
                      return null;
                  }
              }
          
          
              public String encodeQueryStr(String query) {
                  String afterQuery = "";
                  try {
                      if (StringUtils.isNotEmpty(query)) {
                          String param[] = query.split("&");
                          Arrays.sort(param);
                          for (String str : param) {
                              if (afterQuery.length() < 1) {
                                  String[] s = str.split("=");
                                  if (s.length >= 2) {
                                      String encodeStr = null;
                                      encodeStr = URLEncoder.encode(s[1], "UTF-8");
                                      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], "UTF-8");
                                      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

          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 < bytes.length; i++) {
                      bytes[i] = (byte) Integer.parseInt("" + hexChars[i * 2] + hexChars[i * 2 + 1], 16);
                  }
          
                  return bytes;
              }
          
          }
          

          4. HttpDeleteWithBody.java

          package com.ffcs.ebp.ebpsdk;
          
          import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
          import java.net.URI;
          public class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase{
              public static final String METHOD_NAME = "DELETE";
              public String getMethod() { return METHOD_NAME; }
          
              public HttpDeleteWithBody(final String uri) {
                  super();
                  setURI(URI.create(uri));
              }
              public HttpDeleteWithBody(final URI uri) {
                  super();
                  setURI(uri);
              }
              public HttpDeleteWithBody() { super(); }
          }
          
          

          5. HttpGetWithEntity.java

          package com.ffcs.ebp.ebpsdk;
          
          import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
          import java.net.URI;
          public class HttpGetWithEntity extends HttpEntityEnclosingRequestBase {
              private final static String METHOD_NAME = "GET";
          
              @Override
              public String getMethod() {
                  return METHOD_NAME;
              }
              public HttpGetWithEntity() {
                  super();
              }
              public HttpGetWithEntity(final URI uri) {
                  super();
                  setURI(uri);
              }
              HttpGetWithEntity(final String uri) {
                  super();
                  setURI(URI.create(uri));
              }
          
          }
          

          6. MyTest.java

          import com.ffcs.ebp.ebpsdk.YunSign;
          import com.ffcs.ebp.ebpsdk.common.Response;
          
          import java.util.*;
          
          public class MyTest {
              public static void main(String[] args) throws Exception {
                  //0:绕过ssl证书   1:验证ssl证书
                  int temp = 1;
          
                  //请求方式
                  String method = "get";
          
                  //请求类型
                  String contentType = "application/json;charset=UTF-8"; //application/x-www-form-urlencoded;charset=UTF-8
                  //String contentType = "application/x-www-form-urlencoded;charset=UTF-8";
                // String contentType = "multipart/form-data;charset=UTF-8";
                  //header头参数添加(没有就不填)
                  Map<String, Object> headerMap = new HashMap<>();
          //       headerMap.put("queryMetricDataInfo", "{\"regionId\":\"cn-sz1\",\"dim\":\"instance_id,98cdcc8a-8e54-4788-ab9c-c94ccee429c7\",\"filter\":\"average\",\"from\":\"1658473040\",\"to\":\"1658473040\",\"metricName\":\"net_bitRecv\",\"namespace\":\"AGT.ECS\",\"period\":\"1\"},\"platform\":\"3\"}");
          //       headerMap.put("platform", "3");
                //  headerMap.put("consoleUrl", "http://55.242.31.61:4802");
                //  headerMap.put("User-Agent", "3333433");
               //   headerMap.put("X-Forwarded-For", "1231313");
                 // headerMap.put("regionId", "100054c0416811e9a6690242ac110002");
                 // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc");
                  //请求地址
                  String url = "https://zos-global.ctapi.ctyun.cn/v4/oss/list-buckets";
          
                  //query参数(?后面拼接的参数。没有就不填)  aa=aa&bb=bb
                  String queryStr = "regionID=41f64827xxxxxxxxxffa3a5deb5d15d";
                  //body参数(没有就不填)
                  String body = "";
                  //APPID
                  String ak = "9f82cacd3f8235c66edfs5e899f098e6";
          
                  //appkey
                  String sk = "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62-VM";
          
                  //ctyun-eop-request-id(32位uuid)
                  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());
              }
          }
          
          
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  Python调用示例
          下一篇 :  API
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明