我一直在使用iPhone和Android版本的应用程序。 我在IIS上使用ASP.net web api来处理我的网络请求。 在iphone上,所有网络请求都是如此顺畅和快速,即使服务器闲置一段时间,响应仍然很快。 另一方面,来自Android(我选择Volley库)的网络请求表现得差异很大。如果我在Android客户端上闲置一段时间(仅约30秒),下一个请求将会慢得多。但是,一旦我开始第一次请求,所有后续请求(必须在30秒内完成)与iphone计数器部分一样快。
我使用tcpdump从Android捕获了我的请求,并在Wireshark中打开。
抱歉,不知道如何让图片更大,请放大浏览器...
快速请求:(在30秒内跟随第一个请求)
请求缓慢(空闲超过30秒然后发出第一个请求):
注意慢速请求在握手之前发送请求并且有很多重新传输。 有没有办法让我的Volley网络请求像iphone网络请求一样快,而且在闲置一段时间后不会减速?真的想弄清楚这一点,因为Android上的缓慢可能需要2秒以上的时间,这真的是一个糟糕的用户体验。
请任何人帮忙或至少给我一个方向吗?
答案 0 :(得分:0)
我在某些手机中遇到了同样的问题,但我改变了:
Volley.newRequestQueue(getApplicationContext())
为:
Cache cache = new DiskBasedCache(getCacheDir(), 1024 * 1024);
Network network = new BasicNetwork(new HurlStack());
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
Instantiate the RequestQueue with the cache and network.
mRequestQueue = new RequestQueue(cache, network);
mRequestQueue.start();
答案 1 :(得分:0)
我确实遇到了同样的问题。我所做的是将DNS,TTL下的A记录从1800秒更改为900秒。