Конвертировать массив в параметры Alamofire в Swift - PullRequest
0 голосов
/ 15 октября 2018

Я использую Alamofire для вызова .put метода внешнего API.В Почтальоне я могу успешно передать необработанные данные JSON в следующем формате, где каждый элемент содержит идентификатор и количество.:

[{
    "id":"176",
    "quantity":"2"
}, {
    "id":"178",
    "quantity":"1"
}]

cURL пример:

PUT /cart HTTP/1.1
Host: someapi.biz
x-api-key: somekey
x-auth-token: sometoken
Content-Type: application/json
cache-control: no-cache
Postman-Token: sometoken
[{
    "id":"176",
    "quantity":"2"
}, {
    "id":"178",
    "quantity":"1"
}]------WebKitFormBoundary7MA4YWxkTrZu0gW--

В быстром я не могу понять, как правильно отформатировать эту информацию в набор параметров для Alamofire.

    for item in OrderedItems {
                let rowItem: JSON = ["id" : item.ID, "quantity" : item.Quantity]
??
}

1 Ответ

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

Проверьте ниже код:

var arrParam = [Any]()
    for item in OrderedItems
    {
        let rowItem: JSON = ["id" : item.ID, "quantity" : item.Quantity]
        arrTemp.append(rowItem)
    }

    // Convert Array into JSON String (Raw)
    guard let data = try? JSONSerialization.data(withJSONObject: arrParam, options: []) else {
        return
    }
    let paramString = String(data: data, encoding: String.Encoding.utf8)

    var request = URLRequest(url: URL(string: "URL")!)
    request.httpMethod = HTTPMethod.put.rawValue
    request.httpBody = paramString?.data(using: .utf8)

    Alamofire.request(request).responseJSON { (response) in

    }

Надеюсь, это поможет вам.

...