我遇到了Volley和301/302重定向问题,特别是来自http - > HTTPS。我正在向服务器发出API调用,在不久的将来,当调用http而不是https时,它将发出301重定向。
我在Response.ErrorListener上遇到了ServerError。
我在这里已经阅读了一些解决方案,但其中大多数已经超过1年了。
什么是最佳选择?
修改Volley代码以处理BasicNetwork类和Request类中的301/302。
使用OkHttp3堆栈而不是Volley的默认HttpStack。如果是的话,推荐哪一个。我见过多次实现。
代码示例
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "http://www.server.com/api-path, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
VolleySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest);
我收到了com.android.volley.ServerError的VolleyError with networkResponse.statusCode = 301.服务器返回301,其位置为https://www.server.com/api-path