2015-11-03 16 views
5

Come posso inviare una stringa json raw dal metodo put o post con Alamofire?Alamofire stringa json non elaborata per postare o inserire

Non riesco a trovare alcun esempio per quello.

let params = Mapper().toJSONString(results) // json string with array of objects 

Alamofire.request(.PUT, Config().apiGroup, parameters: params) 

ottenere errore:

Cannot convert value of type 'String?' to expected argument type '[String : AnyObject]?' 

risposta

4

Alamofire si aspettano un dizionario di [String: AnyObject]? come ha detto il vostro errore e in base al codice si sta tentando di passare un array, è necessario convertirlo in un dizionario, invece. Controllare la firma della funzione request in Alamofire:

func request(method: Method, _ URLString: URLStringConvertible, 
      parameters: [String : AnyObject]? = default, 
      encoding: ParameterEncoding = default, 
       headers: [String : String]? = default) -> Request 

Vedi questo esempio dal Alamofire doc:

let params = Mapper().toJSONString(results) // json string with array of objects 

Alamofire.request(.PUT, "http://httpbin.org/get", parameters: ["params": params]) 
    .response { request, response, data, error in 
     print(request) 
     print(response) 
     print(data) 
     print(error) 
     } 

Spero che questo aiuto.

+0

Ma questa è una matrice di oggetti, quindi non posso convertirlo in '[String: AnyObject]'. :/ –

+0

Sì, ma come ho detto sopra Alamofire si aspetta un dizionario non un array, vedere la risposta aggiornata a voi può vedere un esempio –

+0

Ma sto provando '.POST' o' .PUT'. Questo è un esempio o array di dati: '[[" id ": 10," order ": 0," name ": Test], [" id ": 12," order ": 9," name ": Test2]]' non riesco a convertirlo in '[String: AnyObject]' –

Problemi correlati