需要帮助与Alamofire进行POST调用以检索XML

时间:2016-10-31 03:51:53

标签: xml swift xcode post alamofire

我在网上找到了几个如何使用Alamofire获取结果和JSON并创建一个JSON对象的例子......我正在尝试获取返回XML的API的结果(稍后我会解析)但是找不到有用的好例子。我正在使用Xcode 8.0,Swift 3和最新版本的Alamofire(2016年9月,也许是4.0版本)?

以下是代码:

import Foundation
import Alamofire

var first_name = ""
var last_name = ""

var URLString = "https://api-equitywerks.rhcloud.com/api/read_ls.xml"

let parameters = [
    "Firstname":  "\(first_name)",
    "Lastname": "\(last_name)", ];

func test() {
   Alamofire.request(URLString,
              method: .post,
              parameters: parameters,
              encoding: JSONEncoding.default, headers: nil)
         .responseJSON { (response:DataResponse<Any>) in

switch(response.result) {
case .success(_):
    if let data = response.result.value{
        print(response.result.value)
        print(data)
    }
    break

case .failure(_):
    print(response.result.error)
    break

    }
   }
}

我想我想用.response替换.responseJSON链式调用,但是当我尝试这样做时,我会收到错误。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

我认为您无法调用responseJSON来获取xml响应。您需要使用responseString来获取原始字符串,或使用responseData来获取原始数据。

import UIKit
import Alamofire

class TestAlamofireXML: UIViewController {

    override func viewDidLoad() {
        getData()
    }

    func getData() {
        Alamofire.request(.GET, "https://api-equitywerks.rhcloud.com/api/read_ls.xml", parameters: nil, encoding: .URL, headers: nil)
            .validate()
            .responseString {
                (response) in
                switch response.result {
                case .Success(let value):
                    print(value)
                case .Failure(let error):
                    print(error.localizedDescription)
                }
            }
    }
}