我尝试使用AlamoFire在swift上的应用程序上向我的API发出请求。我需要使用这样的自定义标题,所以我选择使用NSURLRequest方法,这是我的代码:
let URL = NSURL(string: "\(APIUrl)/sessions")!
let mutableURLRequest = NSMutableURLRequest(URL: URL)
mutableURLRequest.HTTPMethod = "POST"
let parameters = ["oauth_token": OAuthToken]
var JSONSerializationError: NSError? = nil
mutableURLRequest.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameters, options: nil, error: &JSONSerializationError)
mutableURLRequest.addHeadersInDictionary(self.defaultHeaders)
Alamofire.request(mutableURLRequest)
.validate(statusCode: 200..<300)
.responseJSON { [weak self] request, response, JSON, error in
println(request.description)
if let strongSelf = self, response = response {
if error == nil {
let jsonResult = JSON as! Dictionary<String, AnyObject>
strongSelf.setAuthToken(jsonResult[JsonConstants.AuthToken] as! String)
strongSelf.defaultHeaders["Authorization"] = "Token token=\(strongSelf.authToken()!)"
success?()
} else {
println("Failed with \(response.statusCode)")
println(error!)
failure?()
}
} else {
println(error!)
failure?()
}
}
我在我的API上完全收到了请求,但在我的日志中,我看到发送的参数与我发送的参数完全不同:
Parameters: {"oauth_token"=>"token", "session"=>{"oauth_token"=>"token"}}
为什么AlamoFire会在我的HTTP Body中添加session : []
参数?有没有办法清理这些参数只是为了将所需信息发送到服务器,或者至少删除会话参数之外的oauth_token
?
此外,如果我在未添加HTTPBody
的情况下发送了请求,我将在服务器上收到session
参数为空:
Parameters: {"session"=>{}}
提前致谢!
答案 0 :(得分:0)
Alamofire没有附加session
参数。您必须将其添加到逻辑中的某个位置(示例中未显示)。另外,您的addHeadersInDictionary
方法在做什么?