跳到主要内容

Request():setParameter()

为请求体设置参数(与 POST/PUT/PATCH 请求配合使用)。此方法允许您添加将随请求体发送的数据。

签名

setParameter(key: string, value: string): Request

参数

参数类型说明
keystring参数名称
valuestring参数的值

返回值

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" 作为字符串传入
JSONsetParameter("data", '{"key":"value"}')JSON 字符串可作为参数传入

说明

  • 此方法主要用于 POST、PUT 和 PATCH 请求
  • 所有参数值都被视为字符串
  • 该方法返回 Request 对象,允许进行方法链式调用
  • 参数通常根据 Content-Type 请求头进行格式化
  • 对于 GET 请求,参数应包含在 URL 查询字符串中
  • 请求体的实际格式取决于通过 setHeader() 设置的 Content-Type 请求头
  • 多次以相同的 key 调用 setParameter() 将覆盖之前的值