حفظ الكوكيز عند تسجيل الدخول
#1
السلام عليكم
هل هناك موضوع يتحدث عن طريقة حفظ الكوكيز عند تسجيل الدخول واستخدامه لارسال نص مثلا  اريد مثال جزاكم الله خيرا
الرد
#2
(17-02-2018, 09:26 PM)mohamed49 كتب : السلام عليكم
هل هناك موضوع يتحدث عن طريقة حفظ الكوكيز عند تسجيل الدخول واستخدامه لارسال نص مثلا  اريد مثال جزاكم الله خيرا
السيرفر البعيد بعد تسجيل دخول الصحيح سيرد عليك ب header <- response request يحتوي على cookies
انت ماعليك سوى نسخه و ارساله في مرة

http header - قبل تسجيل الدخول
https://prnt.sc/igctp9
http header - بعد تسجيل الدخول
https://prnt.sc/igctuf
---
كما ترى السرفر البعيد يقول للمتصفح احفظ هته الكوكويز
.:: مبرمج شوارع ::.
الرد
#3
اولا المشكلة في الموضوع كالاتي:

نجهز البيانات لارسالها
param.Add(format('username=%s',[usertxt.Text]));
param.Add(format('password=%s',[passtxt.Text ]));
نرسل البيانات ونستقبل الرد
myresult:=http.Post('https://xxxxxxxx/login',param).ContentAsString;
تم تسجيل الدخول بنجاح
الان اريد ارسال نص مثلا بعد تسجيل الدخول او الرد على موضوع ما فيجب لذلك حفظ الكوكيز لامكانية ارسال النص او الرد على الموضوع
جربت انشاء
public
cookies:TCookieManager;
وجعلت الكوكيز الخاص بارسال الطلب يحفظ فيها
http.CookieManager:=cookies;
لكن عند ارسال الطلب الثاني لا تنجح
s:=http.Get('https://xxxxxx/writetxt').ContentAsString;
الارسال لم يتم فكيف يمكنني حفظ الكوكيز لاعادة ارسال الطلب بال tnethttpclient
الرد
#4
اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
الرد
#5
(19-02-2018, 06:10 PM)mohamed49 كتب : اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
 عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;

المفروض مكون الكوكيز يحل المشكلة
سأحاول عمل مثال

تاكد مبدئيا من هاه اعدادات
idHttp1.HandleRedirects := true
idHttp1.AllowCookies := true
.:: مبرمج شوارع ::.
الرد
#6
وعليكم السلام ورحمة الله
الكود الخاص بك فيه خطا في حفظ الكوكيز اما الباقي فهو تمام فالخطا عندك هنا

public
cookies:TCookieManager;
وجعلت الكوكيز الخاص بارسال الطلب يحفظ فيها
http.CookieManager:=cookies;

والصحيح
تعيين مصفوفة لحمل الكوكيز
var Cookies: TCookiesArray;
ثم حفظ الكووكيز داخلها هكذا

Cookies := http.CookieManager.Cookies;
بحيث يكون الكود تقريبا على هذا النحو

param.Add(format('password=%s',[passtxt.Text ]));
نرسل البيانات ونستقبل الرد
myresult:=http.Post('https://xxxxxxxx/login',param).ContentAsString;
تم تسجيل الدخول بنجاح
الان اريد ارسال نص مثلا بعد تسجيل الدخول او الرد على موضوع ما فيجب لذلك حفظ الكوكيز لامكانية ارسال النص او الرد على الموضوع
جربت انشاء
public
cookies:TCookiesArray;
وجعلت الكوكيز الخاص بارسال الطلب يحفظ فيها
Cookies := http.CookieManager.Cookies;
ستنجح ان شاء الله
s:=http.Get('https://xxxxxx/writetxt').ContentAsString;

بالتوفيق
[-] كل من 1 user says قال شكرا ل newbinary على المشاركة المفيدة
  • mohamed49
الرد
#7
(20-02-2018, 05:42 PM)newbinary كتب : وعليكم السلام ورحمة الله
الكود الخاص بك فيه خطا في حفظ الكوكيز اما الباقي فهو تمام فالخطا عندك هنا

public
cookies:TCookieManager;
وجعلت الكوكيز الخاص بارسال الطلب يحفظ فيها
http.CookieManager:=cookies;

والصحيح
تعيين مصفوفة لحمل الكوكيز
var Cookies: TCookiesArray;
ثم حفظ الكووكيز داخلها هكذا

Cookies := http.CookieManager.Cookies;
بحيث يكون الكود تقريبا على هذا النحو

param.Add(format('password=%s',[passtxt.Text ]));
نرسل البيانات ونستقبل الرد
myresult:=http.Post('https://xxxxxxxx/login',param).ContentAsString;
تم تسجيل الدخول بنجاح
الان اريد ارسال نص مثلا بعد تسجيل الدخول او الرد على موضوع ما فيجب لذلك حفظ الكوكيز لامكانية ارسال النص او الرد على الموضوع
جربت انشاء
public
cookies:TCookiesArray;
وجعلت الكوكيز الخاص بارسال الطلب يحفظ فيها
Cookies := http.CookieManager.Cookies;
ستنجح ان شاء الله
s:=http.Get('https://xxxxxx/writetxt').ContentAsString;

بالتوفيق

جزاك الله كل خير تم الارسال بنجاح جعلها الله في ميزان حسناتك
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم