Swift - Добавить параметр в httpBody по запросу Post

Я отправляю сообщение по URL-адресу, и мой webDev сообщает мне, что мне нужно установить

"data="

в качестве параметра и мой JSONObject в качестве ключа. Я не знаю, как установить строку в качестве параметра.

Я попытался объединить String по запросу .httpBody, но он принимает только данные. Я пытался добавить его и в нескольких других областях, но безуспешно.

let dateFormatter = DateFormatter()
        dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
        let dateString = dateFormatter.string(from: load.date)

        let json: [String: Any] = ["lb_datetime": "\(dateString)", "operator_id": "\(load.operatorID)", "ticket_number": load.ticketNumber, "timber_sale_id": "\(load.saleID)", "hauler_id": haulerInt, "product_id": String(load.productID), "destination": load.destination, "driver": load.driver, "trailer": load.trailerNumber, "trailer_drop": "\(load.trailerDrop)", "scaleticket": load.scaleTicketNumber, "tons": "\(load.tons)", "coords": coordsString, "net": "\(load.net)", "live": "true"]

        print("JSON Object: \(json)")

        let jsonData = try? JSONSerialization.data(withJSONObject: json)

        // create post request
        let url = URL(string: "http://example.net/example/app/mobile/removal/")!
        var request = URLRequest(url: url)
        request.httpMethod = "POST"

        // insert json data to the request
        request.httpBody = jsonData

        let task = URLSession.shared.dataTask(with: request) { data, response, error in
            guard let data = data, error == nil else {
                print(error?.localizedDescription ?? "No data")
                return
            }
            let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
            if let responseJSON = responseJSON as? [String: Any] {
                print("RESPONSEDATA: \(responseJSON)")
            }
        }

        task.resume()

Любая помощь приветствуется!

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
0
412
1

Ответы 1

let jsonData = try? JSONSerialization.data(withJSONObject: json)
if let _jsonData = jsonData {
    request.httpBody?.append(jsonData)
}

Я не уверен, что понимаю, в чем здесь должна быть разница. Куда пойдет "data = "?

BBurchfield 17.12.2018 22:52

почему ты не используешь что-то вроде Мойи? это сделает ваш код более структурированным и чистым.

user5463574 17.12.2018 22:53

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

BBurchfield 17.12.2018 22:54

Другие вопросы по теме