الاستفادة من خدمات تقصير العناوين برمجيا – خدمة is.gd

This article is available in English too, check it out here.

يمكنكم قراءة المزيد عن خدمات تقصير العناوين هنا.

المحتويات

محتويات هذا الدرس:

  • المحتويات
  • نظرة خاطفة
  • مقدمة
  • الواجهة البرمجية
  • ماذا بعد

نظرة خاطفة

أحد دروس سلسلة التعامل مع خدمات تقصير العناوين برمجيا.

اليوم نأخذ نظرة سريعة على خدمة is.gd، مميزاتها، وكيفية التعامل معها برمجيا.

مقدمة

خدمة is.gd هي واحدة من أشهر خدمات تقصير العناوين على الويب إن لم تكن الأشهر على الإطلاق، وهذا راجع إلى سهولة التعامل معها من حيث واجهة المستخدم البسيطة والواجهة البرمجية API سهلة التعامل.

عند اطلاعك على موقع الخدمة http://is.gd ستجد أنه ليس هناك أسهل من هذه الخدمة للتعامل معها. فقط أدخل العنوان المراد تقصيره ثم اضغط على زر التقصير لتحصل على عنوان قصير لا يتجاوز الـ 18 حرفا!

الواجهة البرمجية

توفر لك خدمة is.gd واجهة برمجية بسيطة جدا، حيث أنها توفر لك دالة واحدة فقط وهي التي تقوم بعملية التقصير للروابط (ماذا تريد أكثر؟). بالإضافة إلى ذلك فإنه ليس هناك أي عمليات توثيق مطلوبة.

هذه الدالة هي http://is.gd/api.php وهي دالة بسيطة جدا تأخذ مدخلا واحدا وهو longurl وهو الرابط المطلوب تقصيره وتقوم بإرجاع قيمة نصية وهي الرابط الجديد القصير.

الآن، نقوم بتجربة هذه الدالة. إذا أردنا مثلا تقصير العنوان http://www.WithDotNet.net فإننا نقوم بالذهاب إلى المتصفح وكتابة عنوان الدالة بمدخلاتها في خانة العنوان، فنكتب مثلا: http://is.gd/api.php?longurl=http://www.WithDotNet.net، فتقوم الدالة بتنفيذ الأمر وإرجاع الرابط القصير.

والآن، لنقوم بتطبيق هذه الدالة برمجيا. الدالة الآتية تأخذ العنوان المراد تقصيره وتقوم بالنداء على دالة خدمة is.gd لتطبيق العملية، ثم تقوم بإرجاع العنوان القصير:

// C#
string Shorten(string url)
{
    url = Uri.EscapeUriString(url);
    string reqUri = String.Format(@"http://is.gd/api.php?longurl={0}", url);

    WebRequest req = WebRequest.Create(reqUri);
    req.Timeout = 5000;


    try
    {
        using (System.IO.StreamReader reader =
            new System.IO.StreamReader(req.GetResponse().GetResponseStream()))
        {
            return reader.ReadLine();
        }
    }
    catch (WebException ex)
    {
        return ex.Message;
    }
}
' VB.NET

Function Shorten(ByVal url As String) As String
    url = Uri.EscapeUriString(url)
    Dim reqUri As String = _
        String.Format("http://is.gd/api.php?longurl={0}", url)
    Dim req As WebRequest = WebRequest.Create(reqUri)
    req.Timeout = 5000

    Try
        Dim reader As System.IO.StreamReader = _
            New System.IO.StreamReader(req.GetResponse().GetResponseStream())

        Dim retValue As String = reader.ReadLine()
        reader.Dispose()

        Return retValue
    Catch ex As WebException
        Return ex.Message
    End Try
End Function

لاحظ أننا نحتاج إلى عمل ترميز Encoding للعنوان المراد تقصيره قبل إضافته كمدخلات وذلك لإزالة الأحرف التي يمكن أن تسبب إشكال بالنسبة للعنوان مثل المسافات وعلامات الاستفهام ونحوها. ولعمل هذا قمنا بالاستفاد من الدالة System.Net.Uri.EscapeUriString().

لاحظ أيضا أنه يمكن أن يحدث خطأ في العملية ولذلك نقوم بالتأكد من حدوث الخطأ System.Net.WebException وذلك لتفادي توقف البرنامج أثناء العمل.

ماذا بعد

هذا ويمكنكم القراءة أكثر في هذه السلسلة هنا.

اترك تعليقا