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-запросы не являются идемпотентными — повторение одного и того же запроса несколько раз может создать несколько ресурсов