إنتقل إلى المحتوى الرئيسي

Request():post()

ينفّذ طلب POST ويُعيد كائن Response. تُستخدم هذه الدالة لإرسال البيانات إلى الخادم، عادةً لإنشاء مورد جديد.

التوقيع

post(): Response

القيمة المعادة

Response - كائن الاستجابة الذي يحتوي على رد الخادم

الوصف

ترسل الدالة post() طلب HTTP POST إلى العنوان المحدّد عند إنشاء كائن 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 ليست تكرارية (idempotent) — فقد يؤدي إرسال نفس الطلب عدة مرات إلى إنشاء موارد متعددة