2014-10-30 61 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!)