17-02-2018, 09:26 PM
18-02-2018, 11:59 AM
(17-02-2018, 09:26 PM)mohamed49 كتب : [ -> ]السلام عليكمالسيرفر البعيد بعد تسجيل دخول الصحيح سيرد عليك ب header <- response request يحتوي على cookies
هل هناك موضوع يتحدث عن طريقة حفظ الكوكيز عند تسجيل الدخول واستخدامه لارسال نص مثلا اريد مثال جزاكم الله خيرا
انت ماعليك سوى نسخه و ارساله في مرة
http header - قبل تسجيل الدخول
https://prnt.sc/igctp9
http header - بعد تسجيل الدخول
https://prnt.sc/igctuf
---
كما ترى السرفر البعيد يقول للمتصفح احفظ هته الكوكويز
18-02-2018, 09:15 PM
اولا المشكلة في الموضوع كالاتي:
نجهز البيانات لارسالها
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
نجهز البيانات لارسالها
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
19-02-2018, 06:10 PM
اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
20-02-2018, 05:36 AM
(19-02-2018, 06:10 PM)mohamed49 كتب : [ -> ]اضفت كومبونونت اخر واسندت اليه الكوكيز الخاص بالكومبوننت الاول لكن نفس المشكلة
عند ارسال الطلب الثاني لا تنجح
http2.CookieManager:=cookies;
s:=http2.Get('https://xxxxxx/writetxt').ContentAsString;
المفروض مكون الكوكيز يحل المشكلة
سأحاول عمل مثال
تاكد مبدئيا من هاه اعدادات
idHttp1.HandleRedirects := true
idHttp1.AllowCookies := true
20-02-2018, 05:42 PM
وعليكم السلام ورحمة الله
الكود الخاص بك فيه خطا في حفظ الكوكيز اما الباقي فهو تمام فالخطا عندك هنا
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;
بالتوفيق
الكود الخاص بك فيه خطا في حفظ الكوكيز اما الباقي فهو تمام فالخطا عندك هنا
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, 06:34 PM
(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;
بالتوفيق
جزاك الله كل خير تم الارسال بنجاح جعلها الله في ميزان حسناتك