2010-10-14 11 views
22

कैसे सत्यापित कर सकता है कि मैं जावा में एक स्ट्रिंग एक यूआरएल कैसे देख सकता हूं?जावा में कोई स्ट्रिंग एक मान्य यूआरएल

+0

[जावा में URL मान्य कर रहा है] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1600291/validating-url-in-java) –

उत्तर

40

आप java.net.URL ऑब्जेक्ट को इसके बाहर बनाने का प्रयास कर सकते हैं। यदि यह उचित यूआरएल नहीं है, तो MalformedURLException फेंक दिया जाएगा।

+2

बस स्पष्ट होना , यह केवल MalformedURLException को फेंक देगा 'यदि कोई प्रोटोकॉल निर्दिष्ट नहीं है, या अज्ञात प्रोटोकॉल पाया गया है'। अपाचे के UrlValidator के विपरीत, कोई अतिरिक्त सत्यापन नहीं किया जाता है। – dogbane

+0

यह वास्तव में अन्य चेक भी करता है, उदा। बंदरगाह संख्याएं – Grodriguez

+0

मैंने उद्धृत किया कि javadocs http://download.oracle.com/javase/6/docs/api/java/net/URL.html से। वे कोई अन्य चेक नहीं देते हैं। – dogbane

34

आप commons-validator से UrlValidator का उपयोग कर सकते हैं। यह आपको लिखित कोड से बचाएगा जहां तर्क प्रवाह को अपवाद को कैश करके निर्देशित किया जाता है, जिसे आम तौर पर खराब अभ्यास माना जाता है। इस मामले में, हालांकि, मुझे लगता है कि के रूप में दूसरों का सुझाव दिया करने के लिए, यदि आप एक उपयोगिता विधि isValidUrl(..)

+0

+1 अलग :) – willcodejavaforfood

+0

दूसरों के उत्तरों की नकल करने की कोई जरूरत नहीं होने के लिए;।।) – Bozho

+0

यह अगर वहाँ होस्ट नाम –

6

पूरक Bozho जवाब कहा जाता है, और अधिक व्यावहारिक जाने के लिए इस कार्यक्षमता के लिए कदम ठीक है:

  1. डाउनलोड Apache Commons package और इसे असम्पीडित करें। binaries
  2. अपने जावा बिल्ड पथ में कॉमन्स-सत्यापनकर्ता-1.4.0.jar शामिल करें।
  3. टेस्ट यह इस नमूना कोड (reference) के साथ:

    //...your imports 
    
    import org.apache.commons.validator.routines.*; // Import routines package! 
    
    public static void main(String[] args){ 
    
    // Get an UrlValidator 
    UrlValidator defaultValidator = new UrlValidator(); // default schemes 
    if (defaultValidator.isValid("http://www.apache.org")) { 
        System.out.println("valid"); 
    } 
    if (!defaultValidator.isValid("http//www.oops.com")) { 
        System.out.println("INvalid"); 
    } 
    
    // Get an UrlValidator with custom schemes 
    String[] customSchemes = { "sftp", "scp", "https" }; 
    UrlValidator customValidator = new UrlValidator(customSchemes); 
    if (!customValidator.isValid("http://www.apache.org")) { 
        System.out.println("valid"); 
    } 
    
    // Get an UrlValidator that allows double slashes in the path 
    UrlValidator doubleSlashValidator = new UrlValidator(UrlValidator.ALLOW_2_SLASHES); 
    if (doubleSlashValidator.isValid("http://www.apache.org//projects")) { 
        System.out.println("INvalid"); 
    } 
    
  4. भागो/डीबग

8

आप एंड्रॉयड में कार्यक्रम हैं, तो आप android.webkit.URLUtil का उपयोग परीक्षण करने के लिए कर सकता है।

URLUtil.isHttpUrl(url) 
URLUtil.isHttpsUrl(url) 

आशा है कि यह सहायक होगा।

+7

में अंडरस्कोर यह does not वास्तव में एक यूआरएल अगर इसकी जाँच यह केवल चेकों अनुमति नहीं दी जाएगी http: // शुरुआत में, क्या आपको लगता है कि साथ की जरूरत है URLUtil.isValidUrl (url) है –

+0

त्वरित सिर ऊपर है कि यह कहा जाता है URLUtil ... नहीं URLUtil * S *। – Tommie

-1

यह फ़ंक्शन एक यूआरएल मान्य करता है, और सत्य (वैध यूआरएल) या झूठा (अमान्य यूआरएल) देता है। स्प्रिंग फ्रेमवर्क उपयोगकर्ताओं के लिए

public static boolean isValidURL(String urlString) 
{ 
    try 
    { 
     URL url = new URL(urlString); 
     url.toURI(); 
     return true; 
    } catch (Exception exception) 
    { 
     return false; 
    } 
} 
6

करना सुनिश्चित करें। नहीं है: org.springframework.util.ResourceUtils#isUrl

जैसे

ResourceUtils.isUrl("https://stackoverflow.com/"); 
5

ये रहा: एंड्रॉयड सिर्फ इस लाइन को जोड़ने के लिए

public static boolean isURL(String url) { 
    try { 
     new URL(url); 
     return true; 
    } catch (Exception e) { 
     return false; 
    } 
} 

import java.net.URL;

2

:

boolean isValid = URLUtil.isValidUrl("your.uri"); 
संबंधित मुद्दे