2016-12-15 90 views
1

在使用swift 2.2時,在使用NSURLSession時我沒有得到Response。我究竟做錯了什麼?在NSURLSession中沒有得到結果

我必須在POST請求中傳遞參數和標題。

func API() { 

    let userName:String! = "uname" 
    let password:String! = "password" 

    let request = NSMutableURLRequest(URL: NSURL(string: URL)!) 
    request.HTTPMethod = "POST" 

    let data = try! NSJSONSerialization.dataWithJSONObject(parameter, options:[]) 
    let json = NSString(data: data, encoding: NSUTF8StringEncoding) as! String 
    request.HTTPBody = json.dataUsingEncoding(NSUTF8StringEncoding) 
    request.allHTTPHeaderFields = ["key":"value"] 

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in 
     guard error == nil && data != nil else {               // check for fundamental networking error 
      print("error=\(error)") 
      return 
     } 

     if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {   // check for http errors 
      print("statusCode should be 200, but is \(httpStatus.statusCode)") 
      print("response = \(response)") 
     } 

     let responseString = String(data: data!, encoding: NSUTF8StringEncoding) 
     print("responseString = \(responseString)") 
    } 
    task.resume() 

} 

結果是:

responseString =可選( 「」)

+0

如果你要送你必須相應地設置頁眉JSON。 – vadian

+0

我已更新代碼,試圖發送標題,但它仍然無法正常工作 – user7205007

回答

0

你調用任何REST客戶端,像郵遞員這項服務?如果是的話,並得到響應,從而嘗試與此

request.setValue("value",forHTTPHeaderField:"Key") 

替換該行

request.allHTTPHeaderFields = ["key":"value"] 

,並設置所有值

+0

是的,我收到郵差的結果。我試着替換你寫的東西,遺憾的是還沒有得到任何迴應。 – user7205007

+0

什麼語言用作後端> – Hosny

+0

如果你使用郵遞員,你可以找到一個名爲「生成代碼」的按鈕,你的請求將被寫入更多的語言選擇迅速,並找到什麼在標題字典 – Hosny