【问题标题】:Swift - Add parameter to httpBody on Post requestSwift - 在发布请求时将参数添加到 httpBody
【发布时间】:2018-12-17 21:26:54
【问题描述】:

我正在向一个 URL 发帖,我的 webDev 告诉我需要设置

数据=

作为参数,我的 JSONObject 作为键。我不知道如何将字符串设置为参数。

我尝试在 request.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()

非常感谢任何帮助!

【问题讨论】:

    标签: json swift http post


    【解决方案1】:
    let jsonData = try? JSONSerialization.data(withJSONObject: json)
    if let _jsonData = jsonData {
        request.httpBody?.append(jsonData)
    }
    

    【讨论】:

    • 我不确定我是否理解这里应该有什么不同。 “data=”会去哪里?
    • 为什么不使用 Moya 之类的东西?它会让你的代码更有条理和干净。
    • 我试图避免使用库。这应该可以通过 Swift 的核心内容实现;我只是不确定该怎么做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2019-09-17
    相关资源
    最近更新 更多