2017-02-14 7 views
0

Мне нужно отправить список строк под ключ в теле. Alamofire делает параметры супер простыми, но я не могу понять, как это сделать в теле запроса. Это не помогает мне, потому что это для простой строки, и я не могу понять, как заставить ее работать для массива строк: POST request with a simple string in body with Alamofire. Это одно название о теле JSON, но ответ дает им как параметры Alamofire 4, Swift 3 and building a json body. Кто-нибудь имеет ответ или ссылку на то, что действительно решает мою проблему?Есть ли простой способ отправить ключ, значение в Alamofire в теле NOT param?

Код по запросу:

var params = ["phone_numbers": [6314560046, 8458200476]] as [String: Any] 

Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON() { response in 
+0

На самом деле вам нужно создать объект запроса, а затем установить тело HTTP. URLRequest содержит это свойство. Используйте 'let r = Almofire.request (" API_CALL ")' и 'r.httpBody =" YOUR_KEY_VALUE_IN_STRING "' –

ответ

0

С Alamofire, параметры тела запроса. Это создает ключ со значением массива строк:

let parameters = ["Key": ["String1", "String2", "String3"]] 

Затем использовать параметры при принятии запроса:

Alamofire.request(URL, method: .post, parameters: paramaters, encoding: JSONEncoding.default) 
.responseJSON { response in 
    print(response) 
} 
+0

Это не работает для меня, я делаю эту точную вещь, и когда я вижу вызов на бэкэнд-сервере, параметры отправляются как URL-параметры, а не в тело. Я очень смущен –

+0

Можете ли вы опубликовать код? Это звучит, как, возможно, urlEncoding, а не JSONEncoding используется, трудно сказать. Я был бы рад помочь вам в этом –