Swift 5, сделайте http пост-запрос - PullRequest
0 голосов
/ 31 января 2020

Postman

Как выполнить прикрепленную «операцию почтальона» на Swift 5? Я хотел бы использовать этот код для входа в систему с услугой отдыха на ios (iphone).

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Ниже приведен код для Post метода, используя URLSession

let Url = String(format: "http://10.10.10.53:8080/sahambl/rest/sahamblsrv/userlogin")
    guard let serviceUrl = URL(string: Url) else { return }
    let parameters: [String: Any] = [
        "request": [
                "xusercode" : "YOUR USERCODE HERE",
                "xpassword": "YOUR PASSWORD HERE"
        ]
    ]
    var request = URLRequest(url: serviceUrl)
    request.httpMethod = "POST"
    request.setValue("Application/json", forHTTPHeaderField: "Content-Type")
    guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
        return
    }
    request.httpBody = httpBody
    request.timeoutInterval = 20
    let session = URLSession.shared
    session.dataTask(with: request) { (data, response, error) in
        if let response = response {
            print(response)
        }
        if let data = data {
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: [])
                print(json)
            } catch {
                print(error)
            }
        }
    }.resume()
}
0 голосов
/ 31 января 2020

Попробуйте это с Alamofire 4.x

let parameters: [String: Any] = [
    "request": [
            "xusercode" : "YOUR USERCODE HERE",
            "xpassword": "YOUR PASSWORD HERE"
    ]
]

Alamofire.request("YOUR URL HERE", method: .post, parameters: parameters,encoding: JSONEncoding.default, headers: nil).responseJSON {
    response in
    switch response.result {
    case .success:             
    print(response)
        break
    case .failure(let error):
        print(error)
    }
}
...