我在网上找到了几个如何使用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链式调用,但是当我尝试这样做时,我会收到错误。有任何想法吗?感谢。
答案 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)
}
}
}
}