2014-11-16 8 views
6

voglio per visualizzare i dati da questo URL:? http://www.football-data.org/soccerseasons/351/fixtures?timeFrame=n14Come aggiungere qualcosa come id = 1 ad un NSMutableURLRequest

mio baseURL è let baseUrl = NSURL(string: "http://www.football-data.org")!,

quindi la mia richiesta è let request = NSMutableURLRequest(URL: baseUrl.URLByAppendingPathComponent("soccerseasons/" + "\(league.id)" + "/fixtures?timeFrame=n14"))

Ma il ?timeFrame=n14 non funziona.

Qualcuno sa come risolvere questo in modo che possa visualizzare quei dati?

risposta

14

Il problema è che il punto interrogativo in ?timeFrame=n14 è trattata come parte del URL percorso e quindi HTML sfuggito come %3F. Questo dovrebbe funzionare:

let baseUrl = NSURL(string: "http://www.football-data.org")! 
let url = NSURL(string: "soccerseasons/" + "\(league.id)" + "/fixtures?timeFrame=n14", relativeToURL:baseUrl)! 
let request = NSMutableURLRequest(URL: url) 

In alternativa, utilizzare NSURLComponents, che consente di costruire un URL successivamente dai singoli componenti (Error Checking omesso per brevità):

let urlComponents = NSURLComponents(string: "http://www.football-data.org")! 
urlComponents.path = "/soccerseasons/" + "\(league.id)" + "/fixtures" 
urlComponents.query = "timeFrame=n14" 

let url = urlComponents.URL! 
let request = NSMutableURLRequest(URL: url) 

Aggiornamento per Swift 3:

var urlComponents = URLComponents(string: "http://www.football-data.org")! 
urlComponents.path = "/soccerseasons/" + "\(league.id)" + "/fixtures" 
urlComponents.query = "timeFrame=n14" 

let url = urlComponents.url! 
var request = URLRequest(url: url) 
+0

Sì, questa è la risposta. Grazie mille! – STheFox

+0

Grazie Martin, è grandioso –

Problemi correlati