2015-11-03 3 views
5

Как я могу отправить сырую строку json из метода put или post с помощью Alamofire?Alamofire raw json string to post or put

Я не могу найти для этого никакого примера.

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

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

получать сообщение об ошибке:

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

ответ

4

Alamofire ожидать словарь [String: AnyObject]? как сказала ваша ошибка и в соответствии с вашим кодом вы пытаетесь передать массив, вам нужно, чтобы преобразовать его в словарь вместо. Проверить подпись функции request в Alamofire:

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

Смотрите этот пример из 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) 
     } 

Я надеюсь, что это поможет вам.

+0

Но это массив объектов, поэтому я не могу преобразовать его в '[String: AnyObject]'. :/ –

+0

Да, но, как я уже говорил выше, Alamofire ожидает словаря не массива, см. Обновленный ответ, вы можете увидеть пример –

+0

Но я пытаюсь '.POST' или' .PUT'. Это пример или массив данных: '[[" id ": 10," order ": 0," name ": Test], [" id ": 12," order ": 9," name ": Test2]]' Я не могу преобразовать это в '[String: AnyObject]' –