如何处理重定向现在取决于方法和传输层.我想使用Volley的默认值(自动选择传输层)而不更改任何Volley代码.
一个有效的解决方案是始终使用Okhttp作为传输层(如Issues and contribution for Volley中所述),但我想知道是否存在没有其他框架的方法.
因此,我正在寻找一种“干净”的方式来禁用自动重定向处理.
编辑:
我更喜欢使用Okhttp,这样我就不必管理自己在AndroID上使用的版本,但是当想要改变传输层行为时,Itai Hanski提供的解决方案非常好.
@H_419_12@解决方法 我认为将 Volley that uses OkHttp的httpStack实现作为其传输是最佳解决方案RequestQueue queue = Volley.newRequestQueue(this);Network network = new BasicNetwork(new OkhttpStack());RequestQueue queue = new RequestQueue(new diskBasedCache(new file(getCacheDir(),"volley")),network);queue.start();
OkhttpStack类:
public class OkhttpStack extends HurlStack {private final OkhttpClIEnt clIEnt;public OkhttpStack() {this(new OkhttpClIEnt());}public OkhttpStack(OkhttpClIEnt clIEnt) {if (clIEnt == null) {throw new NullPointerException("ClIEnt must not be null.");}this.clIEnt = clIEnt;}@OverrIDe protected httpURLConnection createConnection(URL url) throws IOException {return clIEnt.open(url);}}
更新:
如果您使用的是新版本的okhttp堆栈,请使用
public class OkhttpStack extends HurlStack { private final OkUrlFactory mFactory; public OkhttpStack() { this(new OkhttpClIEnt()); } public OkhttpStack(OkhttpClIEnt clIEnt) { if (clIEnt == null) { throw new NullPointerException("ClIEnt must not be null."); } mFactory = new OkUrlFactory(clIEnt); } @OverrIDe protected httpURLConnection createConnection(URL url) throws IOException { return mFactory.open(url); }}@H_419_12@ @H_419_12@ 总结
以上是内存溢出为你收集整理的android – 改变Volley框架的重定向策略全部内容,希望文章能够帮你解决android – 改变Volley框架的重定向策略所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)