我试图在Alamofire请求中添加一个自定义头,但是我不认为头被识别了。我仍然收到相同的结果,现在正在得到一个App Transport security错误。我正在添加这里指定的标题-> http://developer.dribbble.com/v1/media/#comment-body-property (删除html并只返回文本)。到目前为止我已经尝试过了。
let headers = ["Accept": "application/vnd.dribbble.v1.text+json"]
var manager: Manager = Manager.sharedInstance
manager.session.configuration.HTTPAdditionalHeaders = headers
manager.request(.GET, url, parameters: parameters).validate().responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
}
case .Failure(let error):
print(error)
}
}发布于 2016-03-22 03:00:31
您必须向Alamofire传递带有自定义头的NSMutableURLRequest。请查看此问题以获得更好的解释。
var request = NSMutableURLRequest(URL: NSURL(string: "YOUR URL HERE")!)
request.HTTPMethod = "GET"
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
request.addValue("application/vnd.dribbble.v1.text+json", forHTTPHeaderField: "Accept")
//Add paramaters (Optional)
let param = ["foo": "bar"]
let encoding = Alamofire.ParameterEncoding.URL
(request, _) = encoding.encode(request, parameters: param)
Alamofire.request(request).responseJSON { response in
//DO SOMETHING WITH YOUR RESPONSE OBJECT
}希望这会有所帮助:)
发布于 2016-03-21 10:09:14
试试这个:
Alamofire.request(.GET, url, parameters: parameters, headers: ["Accept": "application/json"]).responseJSON() { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
}
case .Failure(let error):
print(error)
}
}发布于 2021-10-10 04:12:26
也许为时已晚,但我相信这可能对其他人有帮助。在我的例子中,我把所有的东西都写得很完美,但是Alamofire并不会发布标题。
经过很长一段时间的尝试,我发现这个问题是我没有用'/‘结束我的URL。因此,当我添加这个标题时,标题就像预期的那样摆出了样子。
不工作:
http://\(baseUrl)/api/chat,但是这个是有效的:
http://\(baseUrl)/api/chat/完整代码:
let url = "http://\(baseUrl)/api/chat/"
let headers: HTTPHeaders = ["Content-Type":"application/json",
"Authorization":"Token 57bbac4b15efb531c62558eb553372a0169d9c2e"]
Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers )
.responseJSON { response in
print(response.result.value as Any)
if let json = response.result.value {
if(response.response?.statusCode == 200){
let responseDict = json as! [String : Any]
completion("Success", (response.response?.statusCode)!)
}
else
{
completion(nil, (response.response?.statusCode)!)
}
}
else
{
let httpError = response.result.error
let statusCode = httpError!._code
completion(nil, statusCode)
}
}https://stackoverflow.com/questions/36122370
复制相似问题