需要帮助使用 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 和 MailGun

需要帮助使用 Alamofire 使用 Swift 解析 JSON

使用 Alamofire 的多部分 POST

Swift&NodeJS 使用Alamofire进行Post(zhuan)

我需要使用 Alamofire 解析 Json 的帮助

如何使用 Alamofire SWIFT 在 post api 中发送 JSON