gpt4 book ai didi

ios - 使用解析查询在 Swift 中调用 REST API

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:47 26 4
gpt4 key购买 nike

我正在尝试对我使用 built-in REST API 创建的 Parse 数据库发出 GET 请求.当用户在 UISearchBar 中输入文本时将调用 API,最终目标是在 UITableView 中显示返回的数据。下面的代码仅捕获了我发出有效 HTTP 请求的尝试,我试图查看“Query1”是否与搜索字符串匹配(“Query1”是我的 Parse 数据库中的一个参数,它本质上用作关联的搜索词)。

//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。任何帮助将不胜感激。

最佳答案

我在其他地方得到了帮助,但想发布我得到的答案,以供遇到相同问题的任何人使用。下面是 Swift 中的一个示例 Parse REST API 调用,它使用了我在上面列出的相同参数。

func makeParseRequest(searchString: String) {

var request = NSMutableURLRequest()
request.HTTPMethod = "GET"
request.addValue(kAppId, forHTTPHeaderField: "X-Parse-Application-Id")
request.addValue(kRestAPIKey, forHTTPHeaderField: "X-Parse-REST-API-Key")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")

var params = ["Query1" : "\(searchString)"]
var error: NSError?
var paramsJSON = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &error)
var paramsJSONString = NSString(data: paramsJSON!, encoding: NSUTF8StringEncoding)
var whereClause = paramsJSONString?.stringByAddingPercentEscapesUsingEncoding(NSASCIIStringEncoding)

let urlString = "https://api.parse.com/1/classes/sampleObjectData"
var requestURL = NSURL(string: String(format: "%@?%@%@", urlString, "where=", whereClause!))

request.URL = requestURL!

var task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, err) -> Void in
var stringData = NSString(data: data, encoding: NSUTF8StringEncoding)
println(stringData)
})

task.resume()
}

关于ios - 使用解析查询在 Swift 中调用 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com