2014-10-30 59 views
1

我學習迅速,我需要做一個GET請求,所以這是我的代碼:GET URL連接 - 迅速

var j = ["user": "[email protected]"] 
    var e: NSError? 
    let jsonData = NSJSONSerialization.dataWithJSONObject(j,options: NSJSONWritingOptions(0),error: &e) 
    var jsonString = NSString(data: jsonData!, encoding: NSUTF8StringEncoding) 

    var urlPath = "http://test.example.io/materials?query=\(jsonString)"; 
    println(urlPath) 

    var url: NSURL = NSURL(string: urlPath) 
    var request: NSMutableURLRequest = NSMutableURLRequest(URL: url) 
    request.addValue("xxxxxxxxxxxxxxxxxxxx" , forHTTPHeaderField: "Teech-Application-Id") 
    request.addValue("xxxxxxxxxxxxxxxxxxxx" , forHTTPHeaderField: "Teech-REST-API-Key") 
    request.addValue("application/json" , forHTTPHeaderField: "Content-Type") 
    request.HTTPMethod = "GET" 

    println(request) 

這是我的輸出調試

http://test.example.io/materials?query={"user":"[email protected]"} 

<NSMutableURLRequest: 0x7f8ee3480320> { URL: (null), headers: { 
"Content-Type" = "application/json"; 
"Teech-Application-Id" = xxxxxxxxxxxxxxxxxxxxxxxx; 
"Teech-REST-API-Key" = xxxxxxxxxxxxxxxxxxxxxxxxx; 
} } 

爲什麼第一個打印函數返回正確的url,並且在打印請求中有一個空url,我的錯誤在哪裏?我已經嘗試了一個沒有JSON的網址,它運行。

+0

因爲'http://test.example.io/materials?query= { 「用戶」: 「[email protected]」}'是不是一個有效的URL和'NSURL'初始化失敗實例從中? – mustafa 2014-10-30 12:09:32

+0

我已經取代了這個例子中的真實網址,但我有一個很好的網址。事實上,沒有JSON的網址(http://test.example.io/materials)會運行。 – GiuseppeLabanca 2014-10-30 12:14:06

回答

1

我做到了,解決方案是逃避字符串。

var escapedSearchTerm = urlPath.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) 
var url: NSURL = NSURL(string: escapedSearchTerm!)