快速发送带有参数的 Alamofire 请求

Posted

技术标签:

【中文标题】快速发送带有参数的 Alamofire 请求【英文标题】:Send Alamofire request with parameters in swift 【发布时间】:2018-11-14 06:23:00 【问题描述】:

我想快速发送一个带有一些参数的请求。 body 也有 XML 内容。 http://example.com/POST

Body is : xml = "<root>abc</root>"
user : "admin"
ID : "21User"

我发现Alamofire 代码包含responseJSON,但我的响应不是 JSON。 它将是 XML。那么如何使用呢?

【问题讨论】:

【参考方案1】:

Alamofire 请求可能如下所示:

Alamofire.request(.POST, "https://something.com", parameters: Dictionary() , encoding: .Custom(
            (convertible, params) in
            let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest

            let data = (self.testString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
            mutableRequest.HTTPBody = data
            mutableRequest.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type")
            return (mutableRequest, nil)
        ))
    .responseJSON  response in
    print(response.response) 
    print(response.result)   
    

尝试相同,但使用 responseData 或 responseString 而不是 responseJSON 。

【讨论】:

很抱歉,这是一个 POST 请求 我收到一个错误,调用中有额外的参数。你是如何使用定义参数的?

以上是关于快速发送带有参数的 Alamofire 请求的主要内容,如果未能解决你的问题,请参考以下文章

发送带有参数的 Alamofire 请求以及 HTTP 正文中的图像

使用 alamofire 将带有 JSON 对象和查询参数的 POST 请求发送到 REST Web 服务

用 alamofire 快速发送获取请求

带有 Swift 3 的 Alamofire 4.3,POST 请求不适用于 URL 参数

如何在 Alamofire 4.0 中仅使用参数和正文在 swift 中使用 POST 方法发送请求?

带有 CRUD/Rest 的 Alamofire POST 参数