2017-02-08 17 views
0

я есть эти параметры на полезную нагрузку, чтобы отправить запрос POST бакэндуHTTP с Последовательностью и NSDate Swift

'{"token":"xxxx", "extra_information": {"expires_in": xxxx, "refresh_token": "xxx", "user_id": "user_uuid", "token_type": "Bearer"}}' 

Параметры с «хххх» будет прийти интегрированием. Я стараюсь создать функцию, чтобы отправить этот

func sendAuth() { 
    if let url = NSURL(string: "https://xxxxxxxxxxxx"){ 
     let request = NSMutableURLRequest(URL: url) 
     request.HTTPMethod = "POST" 
     request.addValue("application/json", forHTTPHeaderField: "Content-Type") 
     let token = AccessToken?() 
     let params = ["token" : (token?.tokenString)!, "refresh_token" : (token?.refreshToken)!,"expires_in" : (token?.expirationDate)!, "user_id" : "uber_uuid" , "token_type" : "Bearer"] as Dictionary <String,String> 

     let httpData = NSKeyedArchiver.archivedDataWithRootObject(params) 
     request.HTTPBody = httpData 
     let session = ServicesUtils.BaseSessionManager() 
     session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in 
      var strData = NSString(data: data, encoding: NSUTF8StringEncoding) 
      print("\(strData)") 
     }).resume() 

После записи этого Xcode показать мне ошибку «Не удается преобразовать значение типа NSDate ожидаемого словаря значения строкового типа» из-за параметра expires_in получить NSDate.

Edit 1 - После изменения Dictionay получить strData произошла ошибка «Невозможно преобразовать значение типа«NSURLResponse ожидаемого типа аргумента „NSData“»

+0

'токен? .expirationDate' возвращает' NSDate'? –

+0

Да @DharmeshKheni – breadevelopment

+0

На какой строке вы получаете эту ошибку? –

ответ

0

Its, потому что вы бросаете params как Dictionary <String,String> Вот почему он не будет принимать NSDate как значение в вашем словаре.

Вам необходимо его изменить, как Dictionary <String,AnyObject>, и он будет работать.