Estoy atascado con el siguiente código. ¿Cómo puedo configurar el param y en el método post?

let params:[String:Any] = [
        "email" : usr,
        "userPwd" : pwdCode]

let url = NSURL(string:"http://inspect.dev.cbre.eu/SyncServices/api/jobmanagement/PlusContactAuthentication")
let request = NSMutableURLRequest(URL: url!)
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")

request.HTTPBody = params<what should do for Json parameter>


let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
    data, response, error in

    if let httpResponse = response as? NSHTTPURLResponse {
        if httpResponse.statusCode != 200 {
            println("response was not 200: \(response)")
            return
        }
    }
    if error {
        println("error submitting request: \(error)")
        return
    }

    //handle the data of the successful response here
}
task.resume()
  • Creo que no está claro cuál es el problema – ¿podría ser más específico?
  • Lo siento por mi español…quiero ajustar un parámetro <solicitud.HTTPBody = params< ¿qué debo hacer para Json parámetro> por método post ..pero no sé cómo hacer eso?Si se puede editar el código y mostrar a mi que voy a estar bien
  • La respuesta depende de usr y pwdCode tipos. cadena?
  • Posibles duplicados de ¿Cómo publicar un JSON con el nuevo Apple Swift Idioma
InformationsquelleAutor dhaval shah | 2014-11-20

2 Comentarios

  1. 5

    si entiendo correctamente la pregunta

    var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
    var session = NSURLSession(configuration: configuration)
    var usr = "dsdd"
    var pwdCode = "dsds"
    let params:[String: AnyObject] = [
        "email" : usr,
        "userPwd" : pwdCode ]
    
    let url = NSURL(string:"http://localhost:8300")
    let request = NSMutableURLRequest(URL: url!)
    request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
    request.HTTPMethod = "POST"
    var err: NSError?
    request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: NSJSONWritingOptions.allZeros, error: &err)
    
    let task = session.dataTaskWithRequest(request) {
        data, response, error in
    
        if let httpResponse = response as? NSHTTPURLResponse {
            if httpResponse.statusCode != 200 {
                println("response was not 200: \(response)")
                return
            }
        }
        if (error != nil) {
            println("error submitting request: \(error)")
            return
        }
    
        //handle the data of the successful response here
        var result = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.allZeros, error: nil) as? NSDictionary
        println(result)
    }
    task.resume()

    Me gustaría sugerir el uso de AFNetworking. Véase, por ejemplo, La publicación de datos JSON utilizando AFNetworking 2.0.

    • ¿Qué AFNetworking darle más NSURLSession? Yo solía usar AFNetworking pero NSURLSession parece muy similar a lo que solían hacer.
    • AFNetworking (2.x) está construido en la parte superior de NSURLSession de proporcionar algunas de las abstracciones que hacer su vida más fácil. Por ejemplo, puede analizar los datos en JSON (los encabezados en la respuesta suele decir que el tipo de datos). Hay muchas otras cosas; usted puede comenzar a partir de este tutorial raywenderlich.com/59255/afnetworking-2-0-tutorial y, a continuación, visite el docs para ver más de uso. Sin embargo, estoy de acuerdo en que a veces usted no necesita traer las armas de los grandes si no los necesita 🙂 -Otra cosa que vale la pena señalar – Si usted desea apuntar iOS 6 podría encontrar AFNetworking a ser su mejor opción
    • Esto fue muy útil, he luchado con este problema para una buena cantidad de tiempo, por fin tengo gracias a esta respuesta.
    • tu enlace no es de código swift de su objetivo c código.por favor proporcione afnetworking enlace para código swift
  2. 0

    Esto es cómo se puede establecer parámetros y enviar un POST solicitud, fácil acercarse con Alamofire.

    • Swift 2.2

      let URL = NSURL(string: "https://SOME_URL/web.send.json")!
      let mutableURLRequest = NSMutableURLRequest(URL: URL)
      mutableURLRequest.HTTPMethod = "POST"
      
      let parameters = ["api_key": "______", "email_details": ["fromname": "______", "subject": "this is test email subject", "from": "[email protected]", "content": "<p> hi, this is a test email sent via Pepipost JSON API.</p>"], "recipients": ["_________"]]
      
      do {
          mutableURLRequest.HTTPBody = try NSJSONSerialization.dataWithJSONObject(parameters, options: NSJSONWritingOptions())
      } catch {
          //No-op
      }
      
      mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
      
      Alamofire.request(mutableURLRequest)
          .responseJSON { response in
              print(response.request)  //original URL request
              print(response.response) //URL response
              print(response.data)     //server data
              print(response.result)   //result of response serialization
      
              if let JSON = response.result.value {
                  print("JSON: \(JSON)")
              }
      }

Dejar respuesta

Please enter your comment!
Please enter your name here