یکی از ویژگی های بات کوتاه کردن لینک هستش، حالا من تصمیم گرفتم اگر لینک مستقیم به فایل بود حجم و نام فایل رو هم توی درخواست به کاربر برگردونه

من برای ارسال درخواست های http از axios استفاده میکردم چون میتونستم از promise که برمیگردوند برای تعیین جواب استفاده کنم

برای دریافت حجم فایل میشه از متد head استفاده کرد که یه درخواست برای دریافت هد صفحه رو ارسال میکنه و کاری به محتوا نداره پس کل فایل یا صفحه خونده نمیشه و نتیجه ای که برمیگرده شامل اطلاعات صفحه هست که اگر فایل باشه پس فیلد content-length هم هست که توی اون حجم فایل مشخص شده

با axios.head میشه اینکارو انجام داد و به خوبی کار میکنه ولی به یه مشکل عجیب برخوردم!

وقتی از یه سرور خاص head request میکردم شروع میکرد به خوندن کل محتوای صفحه که یعنی داشت کل فایل رو دانلود میکرد!!! ( من اینو نمیخواستم و اصلا درست نبود )

با پلاگین rest-client اتم یه درخواست هد ارسال کردم به اون آدرس و جواب رو چک کردم دیدم جواب برگشت بدون مشکل پس چرا وقتی من این درخواست رو میفرستادم کار نمیکرد! وقتی headers رو چک میکردم دیدم که سروری که آدرس اون رو بررسی دارم میکنم متد head request رو اجازه نمیده و غیر مجاز اعلان کرده! برام جالب شد که پس بخاطر همین احتمالا axios درخواست رو به get تغییر میده و شروع به دانلود میکنه!

یه نگاه انداختم و دیدم که خود rest-client داره از پکیج request استفاده میکنه، قبلا دیده بودم این ماژول رو چیزای زیادی ازش خونده بودم ولی هیچ وقت نرفتم که باهاش کار کنم و ازش استفاده نکرده بودم ولی اینبار تصمیم گرفتم ازش استفاده کنم

ماژول request-promise-native رو که نسخه ای request هست که از promise خودت جاوا es6 استفاده میکنه رو نصب کردم و درخواست رو باهاش ارسال کردم و مشکل حل شد

خود کد هم به همراه جدا کردن اسم فایل از آدرس هست اینجا داخل این فایل از بات قرار داره


مشخصات

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

برترین جستجو ها

آخرین جستجو ها

آوانو - متن های زیبا هنر گرافیک زیبایی های جهان اشتیاق خرید فالوور خارجی و خرید لایک خارجی عکس پروفایل خانه هوشمند - شهر هوشمند اطلاعات شرکت ایران صنعت | خرید و فروش بوستر پمپ آبرسانی و آتش نشانی | الکتروموتور | پمپ کف کش | موتور برق