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

Request():post()

Выполняет POST-запрос и возвращает объект Response. Этот метод используется для отправки данных на сервер, как правило, для создания нового ресурса.

Сигнатура

post(): Response

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

Response — объект ответа, содержащий ответ сервера

Описание

Метод post() отправляет HTTP POST-запрос на URL-адрес, указанный при создании объекта Request. POST-запросы обычно используются для отправки данных на сервер для обработки, например для создания новых записей, отправки форм или загрузки данных.

Используйте setParameter(), чтобы добавить данные в тело запроса перед вызовом post().

Примеры

Базовый POST-запрос

-- Create a POST request with parameters
local response = Request("https://api.example.com/users")
:setParameter("name", "John Doe")
:setParameter("email", "john@example.com")
:post()

POST-запрос с JSON-заголовками

-- POST request with JSON content type
local response = Request("https://api.example.com/posts")
:setHeader("Content-Type", "application/json")
:setHeader("Authorization", "Bearer your-token-here")
:setParameter("title", "My New Post")
:setParameter("body", "This is the content of my post")
:setParameter("userId", "1")
:post()

Обработка POST-ответа

-- Make the POST request and handle the response
local response = Request("https://api.example.com/comments")
:setHeader("Content-Type", "application/json")
:setParameter("postId", "1")
:setParameter("name", "Anonymous User")
:setParameter("email", "user@example.com")
:setParameter("body", "Great article!")
:post()

-- Get the response data
local data = response:getData()
local statusCode = response:getResponseCode()

if statusCode == 201 then
print("Comment created successfully!")
print("Response: " .. data)
else
print("Failed to create comment. Status: " .. statusCode)
end

Отправка формы с помощью POST

-- Simulate a form submission
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()

local loginResponse = response:getData()
local status = response:getResponseCode()

if status == 200 then
print("Login successful!")
else
print("Login failed. Status: " .. status)
end

Примечания

  • Используйте setParameter(), чтобы добавить данные в тело запроса перед вызовом post()
  • POST-запросы могут иметь тело запроса, содержащее отправляемые данные
  • Метод возвращает объект Response, с помощью которого вы можете получить данные ответа и код состояния
  • При успешном создании ресурса серверы обычно возвращают код состояния 201
  • Всегда проверяйте код состояния ответа, чтобы убедиться в успешности запроса
  • POST-запросы не являются идемпотентными — повторение одного и того же запроса несколько раз может создать несколько ресурсов