2016-04-15 7 views
0

Ich wollte eine Art von variabel sein, um dem Wörterbuch-Server zu senden, aber aber auf der Linie war ich mit dem Problem let task = session.dataTaskWithRequest(todosUrlRequest) Fehler konfrontiert: Cannot convert value of type 'NSURL' to expected argument type 'NSURLRequest'Fehler bei POST Anfrage in schnellen

Ich hatte zwei Fragen

1) Was ist dieser Fehler?

2) Gibt es eine Prozedur, die ich für POST verwendet habe, ist das richtig? braucht nichts anderes. ?? danke für die Hilfe

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() 
     } 

Antwort

2

request statt todosUrlRequest auf der Linie let task = session.dataTaskWithRequest(todosUrlRequest)

für die zweite Frage, keine Ahnung. Entschuldigung

+0

danke für Hilfe – Shadow