Request():setParameter()
为请求体设置参数(与 POST/PUT/PATCH 请求配合使用)。此方法允许您添加将随请求体发送的数据。
签名
setParameter(key: string, value: string): Request
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| key | string | 参数名称 |
| value | string | 参数的值 |
返回值
Request - 返回 Request 对象,以便进行方法链式调用
描述
setParameter() 方法向请求体添加一个键值对。此方法主要用于需要向服务器发送数据的 POST、PUT 和 PATCH 请求。您可以多次调用此方法以向请求体添加多个参数。
示例
带参数的基本 POST 请求
-- 通过 POST 请求发送表单数据
local response = Request("https://api.example.com/users")
:setParameter("name", "John Doe")
:setParameter("email", "john@example.com")
:setParameter("age", "30")
:post()
带 JSON 内容类型的 POST 请求
-- 通过 POST 请求发送 JSON 数据
local response = Request("https://api.example.com/posts")
:setHeader("Content-Type", "application/json")
:setParameter("title", "My New Post")
:setParameter("body", "This is the content of my post")
:setParameter("userId", "1")
:post()
带参数的 PUT 请求
-- 通过 PUT 请求更新资源
local response = Request("https://api.example.com/users/123")
:setHeader("Content-Type", "application/json")
:setParameter("name", "Jane Smith")
:setParameter("email", "jane@example.com")
:setParameter("status", "active")
:put()
带部分更新的 PATCH 请求
-- 通过 PATCH 部分更新资源
local response = Request("https://api.example.com/users/456")
:setHeader("Content-Type", "application/json")
:setParameter("email", "newemail@example.com")
:setParameter("lastUpdated", "2023-12-01")
:patch()
提交表单
-- 提交登录表单
local response = Request("https://example.com/login")
:setHeader("Content-Type", "application/x-www-form-urlencoded")
:setParameter("username", "myusername")
:setParameter("password", "mypassword")
:setParameter("remember", "true")
:post()
通过 POST 进行搜索查询
-- 通过 POST 发送搜索参数
local response = Request("https://api.example.com/search")
:setParameter("query", "lua programming")
:setParameter("limit", "10")
:setParameter("sort", "relevance")
:setParameter("filters", "books,tutorials")
:post()
local results = response:getData()
local status = response:getResponseCode()
if status == 200 then
print("Search results: " .. results)
else
print("Search failed with status: " .. status)
end
复杂数据结构
-- 创建带有多个嵌套参数的复杂对象
local response = Request("https://api.example.com/orders")
:setHeader("Content-Type", "application/json")
:setParameter("customerId", "12345")
:setParameter("productId", "67890")
:setParameter("quantity", "2")
:setParameter("shippingAddress", "123 Main St, City, State")
:setParameter("paymentMethod", "credit_card")
:post()
参数类型
使用 setParameter() 时,所有值都被视为字符串。以下是常见用例:
| 参数类型 | 示例 | 说明 |
|---|---|---|
| 文本 | setParameter("name", "John Doe") | 常规文本字符串 |
| 数字 | setParameter("age", "30") | 数字应以字符串形式传入 |
| 日期 | setParameter("date", "2023-12-01") | 日期请使用 ISO 格式 |
| 布尔值 | setParameter("active", "true") | 将 "true" 或 "false" 作为字符串传入 |
| JSON | setParameter("data", '{"key":"value"}') | JSON 字符串可作为参数传入 |
说明
- 此方法主要用于 POST、PUT 和 PATCH 请求
- 所有参数值都被视为字符串
- 该方法返回 Request 对象,允许进行方法链式调用
- 参数通常根据 Content-Type 请求头进行格式化
- 对于 GET 请求,参数应包含在 URL 查询字符串中
- 请求体的实际格式取决于通过
setHeader()设置的 Content-Type 请求头 - 多次以相同的 key 调用
setParameter()将覆盖之前的值