• 0

كيف أحمّل ملف عن طريق HTTP في الروبي ؟

أريد تحميل ملفات متنوعة (ملفات فيديو وصوت) من الإنترنت عن طريق HTTP باستخدام لغة الروبي، فكيف أستطيع فعل ذلك؟ علما أنني أستخدم نظام ويندوز وأُفضل عدم تشغيل أية برامج خارجية.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك العديد من الطرق للقيام بتحميل الملفات عن طريق HTTP باستخدام لغة الروبي وعلى جميع الأنظمة، فمثلا يمكنك استخدام وحدة net/http التي سنستخدم العديد من توابعها مثل get لتحميل الملف ومن ثم نقوم بكتابته في ملف معين عن طريق استخدام دوال فتح والكتابة على الملفات كما في المثال التالي:

require 'net/http'
# Must be somedomain.net instead of somedomain.net/, otherwise, it will throw exception.
Net::HTTP.start("somedomain.net") do |http|
    resp = http.get("/flv/sample/sample.flv")
    open("sample.flv", "wb") do |file|
        file.write(resp.body)
    end
end
puts "Done."

 كما يمكنك أيضا تطوير الشيفرة البرمجية قليلا حتى تتمكن من حفظ الملف أثناء التحميل بدلا من انتظار تحميل الملف كاملا ومن ثم القيام بحفظه في مكان معين كما في المثال التالي:

# instead of http.get
f = open('sample.flv')
begin
    http.request_get('/sample.flv') do |resp|
        resp.read_body do |segment|
            f.write(segment)
        end
    end
ensure
    f.close()
end

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن