2017-08-29 4 views
0

Wie kann ich überprüfen, ob die URL gültig ist?So überprüfen Sie, ob die URL gültig ist

Sagen, ich habe diese URL:

http://www.example.com:80/dir/?query=test

Problem:

ich die URL überprüfen, müssen Sie wie folgt vor:

  1. sicher URL Stellen ist gültig Prüfen Schema: welches System verwendet wird: HTTP oder HTTPS

  2. entfernen Port nicht, wenn es in der URL

  3. Return eine absolute URL-Zeichenfolge erhalten den Host, erhalten Sie den Pfad wie unten
ist

url = http://host/absolutePath

Beispiel:

https://www.example.com/dir/?query=test

Ich versuche dies:

var strURL = NSURL(string:"http://www.example.com:80/dir/?query=test") 

if(strURL?scheme == "http" && strURL?scheme == "https"){ 

// remove the Port No 
} else { 

} 

Wie die Port Nein zu entfernen und die URL als Zeichenfolge rekonstruieren?

Antwort

0

Sie können das tun, mit URLComponents

func validate(url : String) -> String? { 
    guard var components = URLComponents(string: url), 
     (components.scheme == "http" || components.scheme == "https") else { return nil } 
    components.port = nil 
    return components.string 
} 

let strURL = "http://www.example.com:80/dir/?query=test" 
let url = validate(url: strURL) // "http://www.example.com/dir/?query=test" 
0

Prüfung dies, wenn dies hilft

func testUrl(string: String) -> String? { 
     var stringUrl: String? 
     if let url = URL(string: string){ 
      if url.scheme == "http" || url.scheme == "https"{ 
       stringUrl = url.absoluteString 
       if let port = url.port{ 
        stringUrl = stringUrl?.replacingOccurrences(of: ":\(port)", with: "") 
       } 
      } 
     } 
     return stringUrl 
    } 
Verwandte Themen