delphi4arab منتديات دلفي للعرب

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

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

نجهز البيانات لارسالها
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
اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
(19-02-2018, 06:10 PM)mohamed49 كتب : [ -> ]اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
 عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;

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

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

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;

بالتوفيق
(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;

بالتوفيق

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