تقنية

urlsplit في بايثون: هل نجاحه يثبت صحة المنفذ؟

نص المنفذ بقي في المكونات
المكونات. [1] [2]

قسّم النص، ثم افحص قراءة المنفذ. [1] [2]

الخلاصة السريعة

لا؛ نجاح التقسيم لا يثبت صحة المنفذ في مثالنا. [1] [2]

  • نضع leaf مكان رقم المنفذ. [1] [2]
  • يعيد urlsplit كائن المكونات. [1] [2]
  • يبقى netloc هو example.invalid:leaf. [1] [2]
  • قراءة port ترفع ValueError. [1] [2]
  • اختبرنا 3.12.14 دون اتصال شبكي. [1] [2]

المثال

from urllib.parse import urlsplit
u=urlsplit(
    'https://example.invalid:leaf/p')
print(u.netloc)
try:
 print(u.port)
except ValueError:
 print('ValueError')

[1] [2]

مرحلتان مختلفتان

المصدر هنا ينشئ المكونات قبل قراءة خاصية المنفذ. تفحص الخاصية النص وتحوله إلى عدد أو ترفضه. المخرجان example.invalid:leaf ثم ValueError. لم يحذف الاستثناء النص المحفوظ في netloc. [1] [2]

قراءة الخاصية ترفض المنفذ النصي
الخاصية. [1] [2]

النطاق

التقسيم ليس تصديقًا عامًا للرابط. بعض المدخلات تفشل أثناء التقسيم نفسه، مثل أقواس غير متطابقة. المنفذ الغائب يعيد None، لا خطأ مثالنا. لا نختبر وجود المضيف أو خدمة أو اتصال. [1] [2]

المراجع

  1. Python 3.12: urlsplit and port
  2. CPython 3.12.14: urllib.parse
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.