Request():setParameter()
Устанавливает параметр для тела запроса (используется с запросами POST/PUT/PATCH). Этот метод позволяет добавлять данные, которые будут отправлены в теле запроса.
Сигнатура
setParameter(key: string, value: string): Request
Параметры
| Параметры | Тип | Описание |
|---|---|---|
| key | string | Имя параметра |
| value | string | Значение параметра |
Возвращаемое значение
Request — возвращает объект Request для цепочки вызовов методов
Описание
Метод setParameter() добавляет пару ключ-значение в тело запроса. Этот метод в основном используется с запросами POST, PUT и PATCH, когда вам нужно отправить данные на сервер. Вы можете вызывать этот метод несколько раз, чтобы добавить несколько параметров в тело запроса.
Примеры
Базовый POST с параметрами
-- Send form data with POST request
local response = Request("https://api.example.com/users")
:setParameter("name", "John Doe")
:setParameter("email", "john@example.com")
:setParameter("age", "30")
:post()
POST-запрос с типом содержимого JSON
-- Send JSON data with POST request
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-запрос с параметрами
-- Update a resource with PUT request
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-запрос с частичными обновлениями
-- Partially update a resource with 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()
Отправка формы
-- Submit a login form
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
-- Send search parameters via 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
Сложная структура данных
-- Create a complex object with multiple nested parameters
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-адреса
- Фактический формат тела запроса зависит от заголовка Content-Type, установленного с помощью
setHeader() - Многократные вызовы
setParameter()с одним и тем же ключом будут переопределять предыдущие значения