Перейти к основному содержимому

Request():setParameter()

Устанавливает параметр для тела запроса (используется с запросами POST/PUT/PATCH). Этот метод позволяет добавлять данные, которые будут отправлены в теле запроса.

Сигнатура

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

Параметры

ПараметрыТипОписание
keystringИмя параметра
valuestringЗначение параметра

Возвращаемое значение

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" как строки
JSONsetParameter("data", '{"key":"value"}')JSON-строки можно передавать как параметры

Примечания

  • Этот метод в основном используется с запросами POST, PUT и PATCH
  • Все значения параметров обрабатываются как строки
  • Метод возвращает объект Request, что позволяет создавать цепочки вызовов методов
  • Параметры обычно форматируются в соответствии с заголовком Content-Type
  • Для GET-запросов параметры следует включать в строку запроса URL-адреса
  • Фактический формат тела запроса зависит от заголовка Content-Type, установленного с помощью setHeader()
  • Многократные вызовы setParameter() с одним и тем же ключом будут переопределять предыдущие значения