[英]Alamofire Get Request and JSON Response
我正在嘗試使用Yoda API並使用Alamofire Swift框架發送請求。 我知道API正常工作,因為我已經多次使用我的Mashape API密鑰測試了端點。 我還可以看到請求正在發送(Mashape的主頁在我的申請下)。 但是我的JSON響應總是nil
。
func handleRequest(words:String){
var saying = words.stringByReplacingOccurrencesOfString(" ", withString: "+");
saying = "?sentence=" + saying;
let url = NSURL(string: (baseURL+saying));
println(url);
var response:String;
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = additionalHeaders;
Alamofire.request(.GET, url!).responseJSON { (_, _, JSON, _) in
println(JSON);
}
}
單詞 string可以是“這是我的第一句話”,它將根據API規范自動用“+”替換空格。 請忽略多個println
語句,它們僅用於調試。
這只是概念代碼的證明,它故意沒有做太多的錯誤檢查,並且由於這個原因不是很好。 如果您有任何建議我會很感激。
Alamofire請求有幾種處理響應的方法。 嘗試處理數據響應並將其轉換為String。 確認響應JSON是否正常。
Alamofire.request(.GET, url!).response { (_, _, data, error) in
let str = NSString(data: data, encoding: NSUTF8StringEncoding)
println(str)
println(error)
}
解析JSON數據時也會檢出錯誤。
出於某種原因,這也是我對Alamofire JSON請求的一個問題。 這是我使用Alamofire處理JSON請求的方式:
Alamofire.request(.GET, urlTo, parameters: nil, encoding: .URL).responseString(completionHandler: {
(request: NSURLRequest, response: NSHTTPURLResponse?, responseBody: String?, error: NSError?) -> Void in
// Convert the response to NSData to handle with SwiftyJSON
if let data = (responseBody as NSString).dataUsingEncoding(NSUTF8StringEncoding) {
let json = JSON(data: data)
println(json)
}
})
我強烈建議您使用SwiftyJSON以更好,更簡單的方式管理JSON,這取決於您。
我希望這對你有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.