【发布时间】:2019-09-13 10:27:24
【问题描述】:
我创建了一个接收 HTTPS 后端的 volley 请求。
RequestQueue queue = Volley.newRequestQueue(uiCallback.getContext(),
new SSLVerification().getHurlStack(uiCallback.getContext()));
JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET,
requestUrl, null, new Response.Listener<JSONObject>() {
...
}
req.setRetryPolicy(new DefaultRetryPolicy(3_600_000, 0, 0));
queue.add(req);
在manifest中,我添加了Internet权限如下:
<uses-permission android:name="android.permission.INTERNET" />
对于只需要很短时间的请求,一切正常。
但如果响应在请求后 3 分钟后出现,则应用程序不会收到任何信息。
在后端,我设置了一个断点。 3 分钟后,我让后端向应用程序发送响应,但没有任何反应。没有成功,没有错误,什么都没有。
如果我在没有SSLVerification 的情况下发出 HTTP 请求,那么我也会在 6 分钟后收到响应。相反,超过 3 分钟的 HTTPS 请求根本不想工作。
更改RetryPolicy 以发出许多请求,这只是一种解决方法,不是一种选择。
【问题讨论】:
-
请尝试缓存策略....*.com/questions/16781244/…。我不确定,但它可能会有所帮助。
-
使用 Postman 在 HTTPS 中尝试 api,看看是否有任何响应。也可以在 volley 中查看使用 onErrorResponse 的日志。
-
就是这样。使用邮递员 https 也可以工作 5 分钟。在 Volley 3 分钟后 nothing
标签: java android https android-volley response