URL 会话 Post 在 iOS 中具有表单数据参数 Swift

URL Session Post with form-data parameter in iOS Swift

我正在尝试 POST 使用 swift 中的表单数据的参数。 我想以表单数据格式传递带有 url 会话的手机号码。但我无法正确发送数据。请帮助我在 url 会话中传递表单数据格式的数据。

我试过的代码:

func registerService(){

    print("register tapped")

    let parameters: [String: Any]  = [
        "mobile" : mobileNumber
    ]
    let url = URL(string: "http://54.251.198.30/api/user/login")
    var req =  URLRequest(url: url!)
    req.httpMethod = "POST"
    let boundary = "Boundary-\(UUID().uuidString)"
    req.addValue("multipart/form-data : \(boundary)", forHTTPHeaderField: "Contet-Type")
    req.addValue("multipart/form-data", forHTTPHeaderField: "Accept")
  
    req.httpBody = NSKeyedArchiver.archivedData(withRootObject: parameters)

    guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) else {return}
    req.httpBody = httpBody
    let session = URLSession.shared
    session.dataTask(with: req, completionHandler: {(data, response, error) in
        if response != nil {
             print(response)
        }
         if let jsonResponse = try? JSONDecoder().decode(LoginBase.self, from: data!) {
                                print(jsonResponse)
        
                            }else{
                                print("error")
                            }

    }).resume()
}

我添加了一张图片,我想传递它的参数。 you Can see Here

感谢您的回复

我已经用正确的语法修改了你的函数参数和请求体。现在你可以使用如下:-

  func Register(){
      print("register tapped")

    let parameters: [String: Any]  = ["mobile" : mobileNumber] as Dictionary<String, Any>

var request = URLRequest(url: URL(string: "http://54.251.198.30/api/user/login")!)
    request.httpMethod = "POST"
    request.httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: [])
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")

    let session = URLSession.shared
    let task = session.dataTask(with: request, completionHandler: { data, response, error -> Void in
        print(response!)
        do {
            let json = try JSONSerialization.jsonObject(with: data!) as! Dictionary<String, AnyObject>
            print(json)
        } catch {
            print("error")
        }
    })

    task.resume()
}