我们有一个接受URL的参数的rest API。此API使用“PUT”http方法。但是Alamofire不允许“PUT”在url中发送参数。
要使其工作,我必须编辑Alamofire代码。我必须添加.PUT作为一个额外的案例如下。
func encodesParametersInURL(method: Method) -> Bool {
switch self {
case .URLEncodedInURL:
return true
default:
break
}
switch method {
case .GET, .PUT, .HEAD, .DELETE:
return true
default:
return false
}
}
任何人都可以分享其他解决方案。
由于
答案 0 :(得分:1)
这就是我们添加.URLEncodedInURL
参数编码案例的原因。不要使用.URL
编码,请切换到.URLEncodedInURL
,这会将.PUT
参数放入网址。
答案 1 :(得分:0)
从alamofire 4.0开始,您可以使用URLEncoding.queryString将.PUT参数放在URL中。
let urlRequest = try URLEncoding.queryString.encode(urlRequest, with: parameters)