2016-04-15 3 views
0

Я хотел быть тип переменной для отправки на сервер словаря, но Но на линии я столкнулся с ошибкой проблема let task = session.dataTaskWithRequest(todosUrlRequest): Cannot convert value of type 'NSURL' to expected argument type 'NSURLRequest'Ошибка в запросе POST в быстром

У меня было два вопроса

1) Что это за ошибка?

2) Есть ли процедура, которую я использовал для POST, так? не нуждается ни в чем другом. ?? спасибо за помощь

func data_request(){ 

      let url = "http://sample.com/api/Flight/GetTicketInformation" 
      guard let todosUrlRequest = NSURL(string: url) else { 
       print("Error: cannot create URL") 
       return 
      } 

      let request = NSMutableURLRequest(URL: todosUrlRequest) 
      request.HTTPMethod = "POST" 
      request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData 

      let newTodo = ["Roundtrip": roundTrip, 
          "OneWay": oneWay, 
          "MultiWay": multiWay, 
          "Adult": numberAdults, 
          "Child": numberchild, 
          "Baby": numberinfant, 
          "SourceCityId": cityIDOrigin, 
          "DestinationCityId": cityIDPurpose, 
          "DepartingDate": raftDate, 
          "ReturningDate": bargashtDate ] 
      let jsonTodo: NSData 
      do { 
       jsonTodo = try NSJSONSerialization.dataWithJSONObject(newTodo, options: []) 
       request.HTTPBody = jsonTodo 

      } catch { 
       print("Error: cannot create JSON from todo") 
       return 
      } 
      request.HTTPBody = jsonTodo 

      let config = NSURLSessionConfiguration.defaultSessionConfiguration() 
      let session = NSURLSession(configuration: config) 

      let task = session.dataTaskWithRequest(todosUrlRequest) { 
       (data, response, error) in 

       guard let responseData = data else { 
        print("Error: did not receive data") 
        return 
       } 
       guard error == nil else { 
        print("error calling POST on /todos/1") 
        print(error) 
        return 
       } 

       // parse the result as JSON, since that's what the API provides 
       do { 
        guard let receivedTodo = try NSJSONSerialization.JSONObjectWithData(responseData, 
                         options: []) as? [String: AnyObject] else { 
                          print("Could not get JSON from responseData as dictionary") 
                          return 
        } 
        print("The todo is: " + receivedTodo.description) 


       } catch { 
        print("error parsing response from POST on /todos") 
        return 
       } 
      } 
      task.resume() 
     } 

ответ

2

request вместо todosUrlRequest на линии let task = session.dataTaskWithRequest(todosUrlRequest)

второго вопроса, нет идеи. извините

+0

благодарит за помощь – Shadow

Смежные вопросы