Rest API 响应与 Postman 响应不同

RestAPI response is not same as Postman Response

我在调用 RESTful API 时遇到了一个非常奇怪的问题。我有一个登录名 API,我在 Postman 中对其进行了测试,它运行良好。这是屏幕截图。

但是一旦我使用 Alamofire 调用它,我得到的响应为 "status :" 1"message" : 'Incorrect Credentials' 这与我在邮递员中使用的电子邮件和密码相同,但我仍然收到此响应,即使我的电子邮件和密码是正确的。我已经在多个电子邮件和密码上对其进行了测试,并且对于每个用户它都会给我同样的错误。

这是我的登录函数..

 public func login(email: String, password: String, success: @escaping (UserData) -> (), failure: errorClosure)
    {
        let parameters: Parameters = [
            "email": "\(email)",
            "password": "\(password)"
        ]
        session.request(Config.loginURL, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON
            { response in
            switch response.result
            {
            case .success(_):
                let json = response.value
                print("JSON: \(json ?? "errr")")
                MappingHelper.ModelFromResponse(UserData.self, response: response, success: { (result) in
                    success(result)
                }, failure: failure)
            case .failure(let error):
                failure?(error)
            }
        }
    }

我就是这样称呼它的..

helper.login(email: email, password: password) { (UserData) in
            print(UserData)
        } failure: { (error) in
            print(error)
 }

调试中..

我使用 session.request 而不是 AF.request 的原因是因为当我使用 AF.request 时它会引发证书错误。

The certificate for this server is invalid. You might be connecting to a server that is pretending to be "DOMAIN NAME" which could put your confidential information at risk.

所以为了绕过这个错误,我在 SO 的一些回答的帮助下创建了一个会话。

private let session: Session = {
        let manager = ServerTrustManager(evaluators: ["******.com": DisabledTrustEvaluator()])
        let configuration = URLSessionConfiguration.af.default
        return Session(configuration: configuration, serverTrustManager: manager)
    }()

我认为错误是 JSONEncoding.default,因为根据您的 Postman 屏幕截图,您不想发送 JSON 正文。您需要使用定义为 url-form-encoded here