在Swift中使用Alamofire进行调用时需要额外的参数“方法”

时间:2018-10-03 12:01:01

标签: ios swift alamofire

我正在尝试使用Alamofire进行请求,但是错误发生在参数设置器method: HTTPMethod中,我使用了提示性参数.post

Alamofire.request(OdooAuth.host2!, method: .post, parameters: [String:Any], encoding: JSONEncoding.default, headers: [])

主持人还可以,因为如果我尝试其他方式,例如:

AlamofireXMLRPC.request(OdooAuth.host2!, methodName: "execute_kw", parameters: params) 这行得通。

问题是我想使用JSON而不是XML。

XCode错误:

enter image description here

我在网上搜索过很多帖子,例如Github,Stackoverflow,但是类似的问题没有答案或无法解决我的问题。

2 个答案:

答案 0 :(得分:0)

标题应该是字典[:]而不是数组[],这就是为什么方法签名不匹配的原因。

尝试

let headers = [
    "Content-Type": "application/json",
    "Accept": "application/json"
]

Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { response in 
    // handle the response here
}

答案 1 :(得分:0)

尝试一下

let _headers = ["Content-Type": "application/json"] 
Alamofire.request(url as URL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: _headers).responseJSON { response in 
    do {
        let jsonData = try JSONSerialization.jsonObject(with: response.data!, options: .mutableContainers) as? JSONStandard

        if (jsonData != nil) {
            let jsonData = response as! Dictionary // PARSE AS PER RESPONSE
        } else {
            print("No Data")
        }
    } catch {
        print("Error")
    }
}