3
我试图在使用built-in REST API创建的分析数据库上发出GET请求。当用户将文本输入到UISearchBar中时,将调用API调用,最终目标是在UITableView中显示返回的数据。下面的代码仅捕获我尝试创建一个有效的HTTP请求,其中我试图查看“Query1”是否与搜索字符串匹配(“Query1”是我的Parse数据库中的一个参数,基本上用作关联的搜索字词)。使用分析查询在Swift中调用REST API
//Mark - UISearchBarDelegate
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
makeRequest(searchBar.text)
}
func makeRequest (searchString : String) {
//REST API call to the sampleObjectData class
var request = NSMutableURLRequest(URL: NSURL(string: "https://api.parse.com/1/classes/sampleObjectData")!)
let session = NSURLSession.sharedSession()
request.HTTPMethod = "GET"
//THIS IS MY TROUBLE AREA
var params = urllib.urlencode({"where";:json.dumps({
"Query1": "\(searchString)"
})})
var error: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &error)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
//The kAppId & kRestAPIKey calls are referencing contstants at the top of the file
request.addValue("X-Parse-Application-Id", forHTTPHeaderField: kAppId)
request.addValue("X-Parse-REST-API-Key", forHTTPHeaderField: kRestAPIKey)
var task = session.dataTaskWithRequest(request, completionHandler: { (data, response, err) -> Void in
var stringData = NSString(data: data, encoding: NSUTF8StringEncoding)
println(stringData)
})
task.resume()
}
结果是不会构建的代码,因为我无法弄清楚如何使用Swift将参数应用于Parse REST API。任何帮助,将不胜感激。
在iOS 9中,不建议使用'stringByAddingPercentEscapesUsingEncoding'。这相反:'stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())' – Joey 2015-09-28 06:45:13