我关注Alamofire的CRUD和授权部分:
enum Router: URLRequestConvertible {
所以我想要完成的基本上是一个简单的PUT
请求,如下所示:
http://localhost:8080/rest/users/add?id=
所以在我的代码中我有:
let requestParam : [String : AnyObject] = ["id" : "\(SOMEID)"]
Alamofire.request(Router.AddUser(parameters: requestParam))
.validate()
.responseString { response in
switch response.result {
case .Success:
..
但是,关注我的服务器并没有获得此id
参数。
调试NSMutableURLRequest
,我发现未添加id
参数。
case .AddUser(let parameters):
print(parameters)
let encodedURL = Alamofire.ParameterEncoding.URL.encode(mutableURLRequest, parameters: parameters).0
print (encodedURL)
控制台输出:
[" id":5649fec6d4c662c573d39fb4] {URL:http://localhost:8080/rest/users/add}
这真的很奇怪,因为我的另一种方法几乎完全相同,但我没有遇到同样的问题。
修改:
经过一些试验后发现它是因为该方法是PUT
。如果是GET
方法,则正确添加参数。有谁知道为什么我不能为PUT
提供请求参数?这是故意的吗?