2016-03-01 45 views
0

如何從Rest API調用中返回的數據返回到Raspberry Pi的傳感器?從Swift的Rest API調用中返回數據NSURLsession

我一直在使用郵遞員操縱GET和POST調用,所以我可以看到它的工作原理和查看響應。在xcode的控制檯返回的信息是如下所示:

可選({URL:>http://192.168.1.83:8000/GPIO/10/value} {狀態碼:200,標頭{ 「緩存控制」= 「無緩存」; 「內容 - 長度「= 1; 」Content-Type「=」text/plain「; Date =」Mon,29 Feb 2016 23:40:32 GMT「; Server =」WebIOPi/0.7.1/Python3.4「; }})

我使用的代碼是從郵遞員產生並如下:

import Foundation 

let headers = [ 
    "authorization": "Basic ***SNIP***", 
    "cache-control": "no-cache", 
    "postman-token": "e-4d2-2------d---9d---c0bc72a44f7e" 
] 

var request = NSMutableURLRequest(URL: NSURL(string:   "http://192.168.1.83:8000/GPIO/10/value")!, 
            cachePolicy:  .UseProtocolCachePolicy, 
           timeoutInterval: 10.0) 
request.HTTPMethod = "GET" 
request.allHTTPHeaderFields = headers 

let session = NSURLSession.sharedSession() 
let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in 
    if (error != nil) { 
    print(error) 
    } else { 
    let httpResponse = response as? NSHTTPURLResponse 
    print(httpResponse) 
    } 
}) 

dataTask.resume() 

我想要調用GPIO引腳10返回的值,它可以是0或1.如果我嘗試從完成處理程序響應中獲取值,它將返回一個零,幾乎任何東西否則我嘗試只是崩潰它。

回答

0

好吧,算了一下!我需要使用....

dispatch_async(dispatch_get_main_queue(), 
       { 
} 

林不知道這是否是標準的做法,但我能得到我需要的東西(yipee),所以現在我可以送一些卡爾瑪換一換我的路!隨時發表評論或稱我是一個putz,但如果有人想給出正確的技術解釋,那會更好,所以我可以更好地理解它以及可能從中受益的其他人