Alamofire 放置请求

Posted

技术标签:

【中文标题】Alamofire 放置请求【英文标题】:Alamofire put request 【发布时间】:2015-05-01 21:38:01 【问题描述】:

尝试让 Alamofire put 请求工作,但系统显示“Extra Argument in Call”

Alamofire.request(.PUT, apiUrl,params,ParameterEncoding.JSON)
        .responseJOSN (request, response, products: [Product]?,error) in
            println(request)
            println(response)
            println(data)
            println(error)
    

谁能解决这个问题?

【问题讨论】:

【参考方案1】:

您的代码示例中有多个问题。这是一个更正的版本,应该可以帮助您:

let apiURLString = "whatever/your/url/is"
let parameters: [String: AnyObject] = [:] // fill in your params

let request = Alamofire.request(.PUT, apiURLString, parameters: parameters, encoding: .JSON)
request.responseJSON  request, response, json, error in
    println(request)
    println(response)
    println(json)
    println(error)

我还鼓励您深入阅读 Alamofire README。它包含一些很棒的信息,应该可以让您更轻松地掌握基础知识。

【讨论】:

感谢您的回复 Cnoon,使用您提供的相同代码,显示错误“找不到成员 .PUT”和“找不到成员 JSON”。请帮我解决这个问题。 我猜你有一个项目设置问题。你还记得import Alamofire吗?您是如何将 Alamofire 添加到您的项目中的?有一些很好的例子说明如何将 Alamofire 添加到您的项目 here。 获取请求对我来说工作正常。这是否意味着项目设置正常?你有一些带有 put 请求的示例项目吗?【参考方案2】:

由于 'alamofire' '~2.0' 改变了参数的数量 您可以尝试使用以下代码块:

Alamofire.request(.PUT,apiUrl,params).responseJSON  request, response,  result in

print(request)
print(response)
print(result.value)

if(result.isSuccess)

 //Do in success block

 else
 //Do in failure block
 

Alamofire.request 没有可用的 error 处理程序参数,因此它向您显示“调用中的额外参数”

【讨论】:

以上是关于Alamofire 放置请求的主要内容,如果未能解决你的问题,请参考以下文章

AlamoFire 图像内存问题

发送 Alamofire JSON 数组 Swift

Alamofire RequestAdapter - 修改 URL

如何在 Swift 3 中使用 Alamofire 在 POST 请求中将给定的 JSON 作为参数发送?

Alamofire 放置请求

Alamofire 在 swift 2.2 中抛出错误