簡體   English   中英

Alamofire獲取請求和JSON響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM