Forest Forest
💒 首页
  • v1.5.30
  • v1.5.28
  • 🎄 ForestX
🌰 案例
💖 支持
🛫 更新记录
🧢 开发团队
⚒️ 参与贡献
  • MaxKey - 业界领先的身份管理和认证产品 (opens new window)
  • Snowy - 国内首个国密前后端分离快速开发平台 (opens new window)
  • Eoapi - 一个开源、可拓展的 API 工具平台 (opens new window)
  • Gitee (opens new window)
  • Github (opens new window)
💒 首页
  • v1.5.30
  • v1.5.28
  • 🎄 ForestX
🌰 案例
💖 支持
🛫 更新记录
🧢 开发团队
⚒️ 参与贡献
  • MaxKey - 业界领先的身份管理和认证产品 (opens new window)
  • Snowy - 国内首个国密前后端分离快速开发平台 (opens new window)
  • Eoapi - 一个开源、可拓展的 API 工具平台 (opens new window)
  • Gitee (opens new window)
  • Github (opens new window)
  • 序言

    • 🎁 新手介绍
    • 📖 文档
    • 🌰 使用案例
    • 🕵️‍ 关于作者
    • 👨‍🎓 贡献者列表
  • 入门

    • 🎬 安装配置说明
    • 🏹 Springboot环境安装
    • 📐 Springboot环境配置
    • 🎯 Springboot环境使用
    • 🏹 Spring环境安装
    • 📐 Spring环境配置
    • 🎯 Spring环境使用
    • 🏹 原生Java环境安装
    • 📐 原生Java环境配置
    • 🎯 原生Java环境使用
    • 🧬 编程式接口
  • 配置项

    • 👜 Springboot环境配置项
    • 👝 Spring环境配置项
    • 🎒 原生Java环境配置项
    • 📚 配置优先级/作用域
  • 声明式接口

    • 🧱 构建接口
    • 🍀 请求方法
    • 🚚 请求地址
    • 🎈 URL 参数
    • 🍭 请求头
    • 👔 请求体
    • 🍮 后端框架
    • 🧁 接口注解
    • 📬 接收数据
    • 🍛 数据转换
    • 🍓 成功/失败条件
    • 🍌 重试机制
    • 🥂 重定向
    • 🍔 Gzip解压
    • 🎂 日志管理
    • ⚽ 回调函数
    • 🍟 异步请求
    • 🛡️ HTTPS
    • 🍪 使用Cookie
    • 🛸 使用代理
    • 🍉 上传下载
    • 🚑 异常处理
  • 编程式接口

    • 请求API

      • 🚀 请求对象
        • 请求对象
        • 构建请求对象
        • 获取请求对象
      • 🚢 请求属性
      • ✨ 执行请求
      • 🎊 后端框架
      • 🎪 请求类型
      • 🔮 请求地址
      • 🧀 URL 参数
      • 🚅 请求头
      • 🚋 请求体
      • ⚓ 回调函数
      • 🚁 异步请求
      • 🥯 Cookie
      • 🍜 成功/失败条件
      • 🌶️ 重试机制
      • ⛵ 重定向
      • 🛰️ 请求代理
    • 响应API

      • 🌠 响应对象
      • ✒️ 读取数据
      • 🦋 响应状态码
      • 🏥 响应错误处理
      • 🎧 响应头
      • 🥞 Cookie
  • 模板表达式

    • 🍬 Hello World
    • 🍹 配置属性引用
    • 🍖 变量引用
    • 🥃 动态变量绑定
    • 🥗 参数序号引用
    • 🍍 引用对象属性
    • 🥝 调用对象方法
  • 高级特性

    • 🥪 拦截器
    • 🍏 自定义注解
    • 🍇 组合注解
    • 🥑 自定义转换器
  • v1.5.28文档
  • 编程式接口
  • 请求API
公子骏
2022-07-14
目录

🚀 请求对象

# 请求对象

请求对象是Forest中最核心的组件,其类名为ForestRequest

主要承担的作用是,将用户发送的请求中的所有属性和数据都封装在这个对象中,并提供直观的API接口方法对其进行修改和操作。

# 构建请求对象

在Forest中有两种创建 ForestRequest 对象的方法:接口方法返回请求对象和编程式接口创建请求对象。

我们先来说第一种方法,即通过自定义的Forest请求接口获取请求对象。

先在请求接口定义的方法中,使用 ForestRequest 作为方法返回类型。再调用该方法后会直接返回 ForestRequest 对象,而不会执行发送请求的过程。

public interface MyForestClient {

    /**
     * Get类型请求,url路径为 /test
     * <p>ForestRequest是带泛型参数的类型
     * <p>泛型参数代表返回的响应数据所期望转化成的类型
     * 
     * @return Forest请求对象
     */
    @Get("/test")
    ForestRequest<?> getForestRequest();
}
1
2
3
4
5
6
7
8
9
10
11
12

调用 getForestRequest() 方法后即可获取该方法所对应的 Forest 请求对象。

@Resource
MyForestClient myForestClient;

... ...
        
// 如果请求方法以 ForestRequest 作为返回值类型
// 不会直接发送请求
// 而是直接返回 Forest 请求对象        
ForestRequest<?> request = myForestClient.getForestRequest();
String path = request.path(); // 得到字符串 /test
// 手动执行发送请求,并以字符串形式接受响应数据
String ret = request.execute(String.class);
1
2
3
4
5
6
7
8
9
10
11
12

友情提示

若请求接口的方法以 ForestRequest 类作为返回值类型,调用该方法时不会直接执行发送请求的过程,而是返回 ForestRequest 类型的对象实例,以便做进一步的操作。 得到 Forest 请求对象后需要手动调用执行方法进行请求发送的过程。 关于如何手动发送请求,请求参见《执行请求》

第二种办法更为简单,即直接通过Forest编程式接口创建请求对象

// 通过ID为 ForestConfiguration Id 的Forest配置来创建一个新的 Forest 请求对象
ForestRequest<?> request1 = Forest.config("ForestConfiguration Id").request();
// 通过默认全局配置来创建一个新的 Forest 请求对象
ForestRequest<?> request2 = Forest.config().request();
// 同上,即通过默认全局配置来创建一个新的 Forest 请求对象 (推荐使用)
ForestRequest<?> request3 = Forest.request();
1
2
3
4
5
6

Forest.request() 会创建一个包含默认请求属性的ForestRequest对象

Forest的编程式接口还提供了其它快速创建请求对象的方法,可以在创建时就指定请求类型和url地址路径

// 创建 GET 请求对象
Forest.get("/");
// 创建 POST 请求对象
Forest.post("/");
// 创建 PUT 请求对象
Forest.put("/");
// 创建 DELETE 请求对象
Forest.delete("/");
// 创建 HEAD 请求对象
Forest.head("/");
// 创建 PATCH 请求对象
Forest.patch("/");
// 创建 OPTIONS 请求对象
Forest.options("/");
// 创建 TRACE 请求对象
Forest.trace("/");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

以上示例代码中的方法名即为请求类型,参数为url地址,如: get("/") 就会返回 GET 类型请求,同时url地址为 http://localhost/。

此类方法的参数可以接受一个简短的不包含域名/端口号部分的路径字符串作为参数,也可以接受完整的url地址

// 参数只传 path 部分
// 请求地址为 http://localhost/test
Forest.get("/test")

// 参数传如完整的 URL 地址
// 请求地址同上,也为 http://localhost/test
Forest.get("http://localhost/test")


1
2
3
4
5
6
7
8
9

# 获取请求对象

在拦截器或 OnError、OnSuccess 等回调函数的参数中可以直接获取 Forest 请求对象,相关内容请参见《拦截器》

下面将接受 ForestRequest 对象各个属性的获取和修改的方法,以及如何执行发送请求的过程。

文档提示

在后面的示例代码中,ForestRequest 对象都将以 request 这一变量名表示。

帮助我们改善此文档 (opens new window)
上次更新: 2023/03/07, 12:59:48
🚑 异常处理
🚢 请求属性

← 🚑 异常处理 🚢 请求属性→

Theme by Vdoing | Copyright © 2016-2023 公子骏 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式