Как я могу отправить запрос json body в кратчайшие сроки, используя Alamofire? - PullRequest
1 голос
/ 27 января 2020

Мне нужно сделать запрос POST в теле json для моего бэкэнда приложения, но ответ возвращает ошибку. Я предполагаю, что мое json форматирование или кодирование неверно, но я не могу понять, в чем проблема. Я пробовал много разных решений, но я не смог найти подходящее. Может кто-нибудь увидеть, какая часть моего кода отвечает за сбой?

let headers: HTTPHeaders = [
    "accept": "application/json",
    "content-type": "application/json",
    "authorization": self.authValue,
    "x-iyzi-rnd": self.randomString,
    "cache-control": "no-cache"
]


let parameters: [String: Any] = [


        "price": "1.0",
        "paidPrice": "1.1",
        "paymentChannel": "mobile_ios",
        "paymentCard": [
            "cardHolderName": "card_name",
            "cardNumber": "card_no",
            "expireYear": "2030",
            "expireMonth": "09",
            "cvc": "123"
        ],
        "buyer": [
            "id": "123123123",
            "name": "john",
            "surname": "doe",
            "identityNumber": "12345678902",
            "email": "johndoe@gmail.com",
            "registrationAddress": "nidakulegöztepemerdivenköymahborasokno1",
            "city": "istanbul",
            "country": "turkey",
            "ip": "192.168.1.82"
        ],
        "shippingAddress": [
            "address": "nidakulegöztepemerdivenköymahborasokno1",
            "contactName": "janedoe",
            "city": "istanbul",
            "country": "turkey"
        ],
        "billingAddress": [
            "address": "nidakulegöztepemerdivenköymahborasokno1",
            "contactName": "janedoe",
            "city": "istanbul",
            "country": "turkey"
        ],
        "basketItems": [
            [
                "id": "321",
                "price": "0.3",
                "name": "binocular",
                "category1": "collectibles",
                "itemType": "physical"
            ],
            [
                "id": "432",
                "price": "0.5",
                "name": "gamecode",
                "category1": "game",
                "itemType": "virtual"
            ],
            [
                "id": "543",
                "price": "0.2",
                "name": "usb",
                "category1": "electronics",
                "itemType": "physical"
            ]
        ],
        "currency": "try"


]


Alamofire.request("https://api.iyzipay.com/payment/auth", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON(completionHandler: {
    response in response

    let jsonResponse = response.result.value as! NSDictionary
    print(jsonResponse)



})

Есть ли другой способ отправить тело запроса json?

...