2014-10-16 36 views
2

我試圖使用Mashape的「Yoda Speak」API。 我得到二進制數據,但我不知道如何解析數據。 當我嘗試打印數據時,我收到了此消息。 「(消息,Missing Mashape應用程序密鑰,請轉至https://www.mashape.com以獲得您的密鑰。)」 我認爲Mashape應用程序密鑰是「jY0bEhHCBpmsh8j1mpA5p11tCJGyp1tok3Zjsn4ubbvNNp5Jt3」。如何適應Swift中的Mashape應用程序密鑰?

如何在Swift中調整這個鍵?

func response(res: NSURLResponse!, data: NSData!, error: NSError!) { 

    let json: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as NSDictionary 
    let header: NSDictionary = ["X-Mashape-Key" : "jY0bEhHCBpmsh8j1mpA5p11tCJGyp1tok3Zjsn4ubbvNNp5Jt3"] 

    for value in json { 
     println(value) 
    } 
} 

func getData() { 
    let url = NSURL(string: "https://yoda.p.mashape.com/yoda?sentence=I+like+you")! 
    let req = NSURLRequest(URL: url) 
    let connection: NSURLConnection = NSURLConnection(request: req, delegate: self, startImmediately: false)! 

    NSURLConnection.sendAsynchronousRequest(req, queue: NSOperationQueue.mainQueue(), completionHandler: response) 
} 
+0

對不起,我有一個錯誤。 我無法獲取二進制數據。 我只收到消息「消息,缺少Mashape應用程序密鑰,請訪問https://www.mashape.com以獲取您的密鑰。」 – 2014-10-16 09:58:03

回答

3

您需要將X-Mashape-Key作爲標題設置爲您NSURLRequest。要做到這一點:

let req = NSMutableURLRequest(URL: url) 
req.setValue("jY0bEhHCBpmsh8j1mpA5p11tCJGyp1tok3Zjsn4ubbvNNp5Jt3", forHTTPHeaderField: "X-Mashape-Key") 

NSURLConnection.sendAsynchronousRequest(req, queue: NSOperationQueue.mainQueue(), completionHandler: response) 

應該做的伎倆。然後,您可以從響應處理程序中刪除標題NSDictionary,因爲它沒用。

+0

非常感謝!我可以設置標題! – 2014-10-30 00:52:09

相關問題