Mic*_*ael 5 android timeout android-volley
我有一个使用Google Volley向Web服务器后端(http://www.example.com/request.php)发出请求的Android应用。用户移动地图时,将调用请求网页的代码。
问题是有时请求会失败。当失败时,我打开我的Chrome浏览器(也在手机上),然后导航到该“ request.php”后端页面。该请求失败,并显示连接超时错误。然后,我在Chrome中按刷新,它会正确加载。我重新打开我的应用程序,然后一切正常,即:请求通过。
我做了调试的步骤:
我从com.loopj异步库切换到Google Volley->仍然存在超时错误
移动地图时请求了其他页面(例如:stackoverflow.com而不是example.com/request.php)->没有错误
在服务器上的htaccess中添加了以下行:RewriteRule (.*) - [E=Cache-Control:no-cache]因为在使用x-litespeed-cache服务缓存的页面之前,我遇到问题->仍然存在超时错误
在多种设备和Android模拟器上进行过尝试->仍然随机存在超时错误
向我的虚拟主机提交了票证,询问他们是否注意到我页面上的任何超时错误-> 他们说不
这是我的代码:
public void updateMarkers() {
params = new HashMap<String, String>();
params.put("mykey", "myvalue");
StringRequest fpsr = new StringRequest(Method.POST, "http://www.example.com/request.php", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//do stuff with the response
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//do stuff with error
}
}) {
@Override
protected Map<String, String> getParams() {
return params;
}
};
ApplicationController.getInstance().addToRequestQueue(fpsr, "updateMarkers");
}
Run Code Online (Sandbox Code Playgroud)
并且与ApplicationController.java此处提供的相同:http : //www.androidhive.info/2014/05/android-working-with-volley-library-1/
我高度怀疑代码是否有问题,因为对除我自己以外的页面的请求永远都不会有问题。
奇怪的是,我的网络托管商说他们没有注意到任何超时错误。但是,即使在Android版Chrome浏览器中访问该页面,也存在超时错误,该错误仅在我按下刷新后才会消失。
谁能阐明这一点?非常感谢你!
另外,我没有来自VolleyError的HTTP响应代码。原因是它随机失败,而且我并不总是将手机连接到计算机上来查看logcat。另外,我尝试记录error.networkResponse.statusCode以前的记录;由于空指针异常而使应用程序崩溃。
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |