TUS protokoli bilan ishlashda texnik qiyinchiliklar
TUS protokoli bilan ishlash jarayonida men ham TUS serveri, ham TUS mijozini ochiq kodli kutubxonalar yordamida amalga oshirdim. Shuningdek, TUSD tizimi bilan integratsiya sinovlarini o'tkazdim. Bu jarayonda duch kelgan asosiy texnik muammolardan biri GET, OPTIONS yoki HEAD so'rovlarida Content-Length maydonining yo'qligi bilan bog'liq edi.
Content-Length muammosini qanday hal qilish kerak?
Ba'zi tizimlar so'rov tanasi bo'lmasa ham Content-Length sarlavhasini talab qiladi. Ushbu muammoni hal qilish uchun quyidagi amallarni bajarishingiz mumkin:
- HttpURLConnection sozlamasi:
Content-Lengthqiymatini aniq 0 qilib belgilang:con.setRequestProperty("Content-Length", "0"); - Chiqish oqimini (Output Stream) majburiy olish: Agar yuqoridagi usul ishlamasa, ulanishdan chiqish oqimini olishga ishonch hosil qiling:
if (con.getDoOutput()) { con.getOutputStream(); }
Ushbu amallar TusClient klassidagi prepareConnection() metodida amalga oshiriladi. Shuni ta'kidlash kerakki, Java'ning ichki HttpsURLConnectionImpl klassi ushbu o'zgarishlarga qanday ta'sir qilishini kuzatish qiyin, chunki u dekompilyatsiya qilish qiyin bo'lgan tizimli paketlarda joylashgan.
Xulosa va takliflar
TUS protokoli qayta yuklash (resumable upload) funksiyasi bilan juda qulay, ammo uni yanada optimallashtirish mumkin. Agar protokol bir nechta tarmoq ulanishlari orqali bo'laklarni yuklashni qo'llab-quvvatlasa, bu protsessor va tarmoq o'tkazish qobiliyatidan samaraliroq foydalanishga yordam berardi. Hozirgi kunda URLConnection o'rniga Apache HTTP Client dan foydalanish qulayroq bo'lishi mumkin.
Eslatma: TUS protokolini yozishda uni katta harflar bilan (TLA sifatida) yozish texnik jihatdan to'g'riroq deb hisoblayman.














Responses (0 )