المشاركات : 169
المواضيع 28
:
: 394
الإنتساب : Apr 2016
السلام عليكم
هل هناك موضوع يتحدث عن طريقة حفظ الكوكيز عند تسجيل الدخول واستخدامه لارسال نص مثلا اريد مثال جزاكم الله خيرا
المشاركات : 183
المواضيع 8
:
: 1
الإنتساب : Sep 2011
18-02-2018, 11:59 AM
(آخر تعديل لهذه المشاركة: 18-02-2018, 12:05 PM بواسطة Houdini.)
(17-02-2018, 09:26 PM)mohamed49 كتب : السلام عليكم
هل هناك موضوع يتحدث عن طريقة حفظ الكوكيز عند تسجيل الدخول واستخدامه لارسال نص مثلا اريد مثال جزاكم الله خيرا
السيرفر البعيد بعد تسجيل دخول الصحيح سيرد عليك ب header <- response request يحتوي على cookies
انت ماعليك سوى نسخه و ارساله في مرة
http header - قبل تسجيل الدخول
https://prnt.sc/igctp9
http header - بعد تسجيل الدخول
https://prnt.sc/igctuf
---
كما ترى السرفر البعيد يقول للمتصفح احفظ هته الكوكويز
.:: مبرمج شوارع ::.
المشاركات : 169
المواضيع 28
:
: 394
الإنتساب : Apr 2016
اولا المشكلة في الموضوع كالاتي:
نجهز البيانات لارسالها
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
المشاركات : 169
المواضيع 28
:
: 394
الإنتساب : Apr 2016
اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
المشاركات : 183
المواضيع 8
:
: 1
الإنتساب : Sep 2011
20-02-2018, 05:36 AM
(آخر تعديل لهذه المشاركة: 20-02-2018, 05:45 AM بواسطة Houdini.)
(19-02-2018, 06:10 PM)mohamed49 كتب : اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
المفروض مكون الكوكيز يحل المشكلة
سأحاول عمل مثال
تاكد مبدئيا من هاه اعدادات
idHttp1.HandleRedirects := true
idHttp1.AllowCookies := true
.:: مبرمج شوارع ::.
المشاركات : 1
المواضيع 0
:
: 0
الإنتساب : Feb 2018
وعليكم السلام ورحمة الله
الكود الخاص بك فيه خطا في حفظ الكوكيز اما الباقي فهو تمام فالخطا عندك هنا
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;
بالتوفيق
المشاركات : 169
المواضيع 28
:
: 394
الإنتساب : Apr 2016
(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;
بالتوفيق
جزاك الله كل خير تم الارسال بنجاح جعلها الله في ميزان حسناتك