كيف يجلب الرابط المباشر فقط ؟ باسمتعامل indy
#1
السلام عليكم

انا استعمل indy في دلفي 2007

اقوم ببرمجة اداة لجلب الرابط المباشر من موقع رفع (fileserve.com) بواسطة حساب premium

هذا هوا الكود

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Data, Page : TStringList;
begin
Data 
:= TStringList.Create;
idhttp1.OnRedirect := IdHTTP1Redirect;

idhttp1.AllowCookies := True;
idhttp1.HandleRedirects := True;
idhttp1.ProtocolVersion := pv1_1;
idhttp1.CookieManager := IdCookieManager1;
idhttp1.RedirectMaximum := 15;
idhttp1.Request.UserAgent := 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 5.1)';

Data.Add('loginUserName=[user]&loginUserPassword=[pass]&autoLogin=&loginFormSubmit=Login');
IdHTTP1.Post('http://www.fileserve.com/login.php',Data);

idHTTP1.get('http://www.fileserve.com/file/aYkRqp3');

for 
i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
 
form1.Memo2.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieText);

end;
procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: string;
  var 
NumRedirect: Integer; var Handled: Boolean; var VMethod: string);
begin
form1
.Edit1.Text := dest; 
end; 
المشكلة انه تعطيني الرابط لاكن بعد تحميل الملف!!! انا لااريـــد تحميل المبف انااريـــد الحصول على الرابط المباشر فقط بدون تحميل الملف

الرابط العادي يكون هكذا
http://www.fileserve.com/file/aYkRqp3
عند التحميل بواسطة حساب بريميوم يتحول الى رابط مباشر وذالك هوا ما اريـــده ه لكن بدون تحميل
هكذا يصبح الرابط

http://fs559dm.fileserve.com/file/aYkRqp...or-neo.exe

انا احصل عليه لاكن بعد تحميل الملف وذالك غريب فاذا الملف حجمه 500 ميجا او اكثر هل انتظر حتى يكتمل لاحصل على الرابط؟؟؟

حاولت بشتى الطرق ولم اجد حل Sad

ان شاء الله تكون مشكلتي واضحة

انا في انظاركم بارك الله فيكم Smile
الرد
#2
اخي ارفع الملف لكي تجد اجابة
الرد
#3
اولا حاول :
إستعمال ال Head في مكان ال Get .
ثانيا لاتنسى :
تحرير ال Data

والله المستعان
الرد
#4
cargem كتب :اخي ارفع الملف لكي تجد اجابة

اخوي انا رافع الكود اعلاه ولا يوجد غيره في البرنامج
الرد
#5
mohfa كتب :اولا حاول :
إستعمال ال Head في مكان ال Get .
ثانيا لاتنسى :
تحرير ال Data

والله المستعان

لقد حاول مع head لكن لا تظهر اي شيئ في

كود :
[align=left]procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: string; var NumRedirect: Integer; var Handled: Boolean; var VMethod: string); begin form1.Edit1.Text := dest; end; [/align]
حتى

كود :
[align=left] edit1.Text := idhttp1.Response.Location; [/align]
لم تظهر اي شيئ Sad

شكرا لك على النصيحة نعم نسيت تحري data من الذاكرة لاني الان احاول التعلم وحل المشكلة بعدها اقوم بكتابة الكود من جديد
الرد
#6
اخي الكريم حاول إستعمال ال Head , ثم لمعرفة النتيجة حاول قراءة ال headers المتوفرة وذلك باستعمال الحدث HeadersAvailable ل idHttp .
ثم إطرح النتيجة هنا .
الرد
#7
اين uses: ؟
هناك متغيرات تحتاج الى *pas
الرد


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


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