HTTP POST формат Json и настройка Alamofire - PullRequest
0 голосов
/ 19 октября 2018
["client_ID": "0", "username": "asdf@gmail.com", "grant_type": "password", "password": "12345", "client_secret": "xxxxxxxxxxxxxxxxxxxxx", "scope": "adfs.user"]

Формат конвертировать в этот

{"client_ID": "2", "username": "asdf@gmail.com", "grant_type": "password", "password": "12345", "client_secret": "xxxxxxxxxxxxxxxxxxxxx", "scope": "adfs.user"}

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Если вы используете SwiftyJSON, вы можете просто сделать

JSON(postString)

, в противном случае вы можете сделать что-то вроде

do {

//Convert to Data
let jsonData = try JSONSerialization.data(withJSONObject: dictionaryOrArray, options: JSONSerialization.WritingOptions.prettyPrinted)

//Convert back to string. Usually only do this for debugging
if let JSONString = String(data: jsonData, encoding: String.Encoding.utf8) {
   print(JSONString)
}

//In production, you usually want to try and cast as the root data structure. Here we are casting as a dictionary. If the root object is an array cast as [Any].
var json = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any]
} catch {
    print(error.description)
}

Более подробную информацию о нативном способе см. В этом ответе: Конвертировать массив в строку JSON в swift

0 голосов
/ 19 октября 2018

Вы можете попробовать это:

let params: Parameters = [ "grant_type" : GRANT_TYPE ,"client_ID" : CLIENT_ID ,"client_secret" : CLIENT_SECRET,"username" : emailString, "password" : passwordString,"scope" : ROLE] 
let req = Alamofire.request(url, method: .post, parameters: params, encoding:JSONEncoding.default , headers: nil).validate().responseJSON { (response) in

})
...