2016-05-29 190 views
0

我想使用Swift 2向我的演示服務發送POST請求。 我已經使用命令curl -X POST "http://127.0.0.1:8000/"測試了我的演示服務,並且它可以成功運行(服務在收到POST請求後輸出消息)。 但是,當我使用Swift2時,什麼都沒有發生。這裏是我的銀行代碼:Swift2發送POST請求

let urlAddress : String = "http://127.0.0.1:8000/" 
let url = NSURL(string: urlAddress)! 
let session = NSURLSession.sharedSession() 

let request = NSMutableURLRequest(URL: url) 
request.HTTPMethod = "POST" 
let task = session.dataTaskWithRequest(request) 
task.resume() 

注:在exec這些應用程序代碼的運行,不與UI或遊戲正常的應用程序。

任何建議是感激!

+0

我將這些代碼複製到UIButton下的演示應用程序,它的工作原理!所以我想知道我是否設置了錯誤。我是一個新的Swift2和iOS – Muyoo

回答

0

我認爲你的問題是你正在發送POST請求罰款,但不會知道,因爲一般來說,你發送的請求返回錯誤,響應和一些數據作爲回報。在你的情況下,你只是發送一個請求,而不是要求迴應。看看下面的代碼。在這裏我有一個數據任務,它有一個完成處理程序,可以幫助您獲得響應,數據和錯誤。

  let request = NSMutableURLRequest(URL: NSURL(string: "http://127.0.0.1:8000/")!) 

    request.HTTPMethod = "POST" 

    let session = NSURLSession.sharedSession() 
    let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in 
     if (error != nil) { 
      print(error) 
     } else { 
      print("Post Request successful") 
     } 
    }) 

    dataTask.resume() 
+0

我試着這樣︰let task = session.dataTaskWithRequest(request,completionHandler:{data,resp,err - > void in let httpResp = resp as!NSHTTPURLResponse! print(httpResp) })但沒有任何事發生 – Muyoo

+0

好吧,現在我開始認爲你只是在測試你的請求。我的意思是,也許你沒有配置你的服務器/加載數據。因此,我編輯了上面的代碼,試一下,如果你能打印「Post request successful」,我會說你沒事。 –