использование активных кампаний API со Swift и Alamofire - PullRequest
0 голосов
/ 19 ноября 2018

Я довольно новичок в разработке для 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)
                }
        }
    }
}

1 Ответ

0 голосов
/ 26 ноября 2018

Эта ошибка означает, что ответ, который вы получили, не был JSON.Скорее всего, это была какая-то страница с ошибкой HTML.Проверьте документы API и убедитесь, что вы правильно форматируете свой запрос.Кроме того, вы можете использовать responseString для просмотра содержимого ответа в виде простого текста.

...