需要帮助使用 Alamofire 进行 POST 调用以检索 XML
Posted
技术标签:
【中文标题】需要帮助使用 Alamofire 进行 POST 调用以检索 XML【英文标题】:need help making POST call with Alamofire to retrive XML 【发布时间】:2016-10-31 03:51:52 【问题描述】:我在网上找到了几个关于如何使用 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】:我认为您不能调用 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)
【讨论】:
以上是关于需要帮助使用 Alamofire 进行 POST 调用以检索 XML的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助使用 Alamofire 使用 Swift 解析 JSON