Alamofire:遵循HTTP重定向(或不)

时间:2015-01-03 20:53:03

标签: ios redirect swift alamofire

我尝试将Alamofire配置为按请求重定向(或不重定向)。

Alamofire有一个私有内部类SessionDelegate,用作当前网址会话的NSURLSessionTaskDelegateSessionDelegate确实实现了相关的委托方法URLSession(session:, task:, willPerformHTTPRedirection response:, request:, completionHandler:),这正是我想要的。

更好的是,代理人的实现咨询了一个名为taskWillPerformHTTPRedirection的自定义变量闭包,以确定如何处理重定向 - 再次,正是我想要的!

据我所知,默认情况下,闭包始终为nil - 它不是由Alamofire在内部分配的 - 这表明它旨在让用户为其分配闭包。

问题:我无法访问此私有SessionDelegate类来为其taskWillPerformHTTPRedirection变量分配闭包。它是一个私有类,我的Swift文件不可见。配置Alamofire请求(不)遵循重定向的正确方法是什么?

2 个答案:

答案 0 :(得分:10)

由于another pull request,灵活的重定向处理现在位于Alamofire,并且可以与Alamofire 1.2.0一起使用。

答案 1 :(得分:0)

我认为很久以前就讨论过这个问题,请查看 issue

亚特的回答很清楚:

  

我在SessionDelegate中设定了各种封闭类型的属性,   打算使用TaskDelegate,DataTaskDelegate和DownloadTaskDelegate   客户端用于扩展/覆盖特定委托   行为。


  

实际上,这是不正确的。这些是内部实现的   完整的缘故。适用于最终用户的任何功能   将在经理请求上公开。

无论如何,我看到赏金是由Aaron提供的,而Jonathan分叉了他自己的 version ,所以为什么不使用那个叉子?