-50% Intro price for the next 72 hours only!. Buy now →

KasallikKasalliklar haqida sodda tilda gaplashamiz

TUS protokoli: Java-da 0 Content-Length muammosini hal qilish

TUS protokolida mijozni amalga oshirishda GET va HEAD so’rovlarida yuzaga keladigan Content-Length xatoligini qanday bartaraf etishni o’rganing.

0
3

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-Length qiymatini 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 )