0

我对 iOS 开发相当陌生,我正在开发一个需要与 Active Campaign 集成的项目。我只是想使用他们的 API 发出一个发布请求,以便在按下按钮时将联系人添加到数据库中。

我首先尝试使用 Alamofire 获取当前联系人的获取请求,以确保我可以访问它并且我似乎无法获得所需的输出。我已经搜索并搜索了很多以找到解决方案。我在网上找到了几种不同的方法,但似乎没有任何效果。

当我运行当前代码以添加联系人时,出现此错误:

responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(error: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

下面是我添加联系人的代码。我会说这是在尝试了我遇到的许多不同的解决方案之后,我可能自己也感到困惑。任何帮助深表感谢!!

    import UIKit
    import Alamofire
    import SwiftyJSON


    class emailEntry: UIViewController {

    @IBOutlet weak var f_name: UITextField!
    @IBOutlet weak var l_name: UITextField!
    @IBOutlet weak var email: UITextField!
    @IBOutlet weak var center_frame: UIView!

    var api_key = "MY_KEY_IS_HERE"
    let urlBase = "BASE_URL_HERE"


    @IBAction func submit_but(_ sender: UIButton) {


        let url = "\(urlBase)/admin/api.php?api_action=contact_add"

        guard let authHeader = Request.authorizationHeader(user: "AnyString", password: api_key) else{
            print("Nothing")
            return
        }

        let parameters:Parameters = ["first_name":f_name,
                                     "last_name":"l_name",
                                     "email":"email"
                                    ]
        let headers:HTTPHeaders = [authHeader.key: authHeader.value]


        Alamofire.request(url, method: .post , parameters: parameters, headers: headers).validate().responseJSON { response in
                switch response.result {
                case .success:
                    print(response)

                    break
                case .failure(let error):

                    print(error)
                }
        }
    }
}
4

1 回答 1

0

该错误表明您返回的响应不是 JSON。很可能是某种 HTML 错误页面。检查 API 文档并确保您正确格式化了您的请求。此外,您可以使用responseString纯文本查看响应的内容。

于 2018-11-26T04:30:04.513 回答