即使在设置AsyncHttpClient超时之后,Android应用程序也会超时
即使设置了超时,我的应用程序也会超时。请参阅下文:即使在设置AsyncHttpClient超时之后,Android应用程序也会超时,android,timeout,android-async-http,Android,Timeout,Android Async Http,即使设置了超时,我的应用程序也会超时。请参阅下文: final int DEFAULT_TIMEOUT = 200000 * 1000000000; // Make RESTful webservice call using AsyncHttpClient object AsyncHttpClient client = new AsyncHttpClient(); client.setTimeout(DEFAULT_TIMEOUT); //client.ge
final int DEFAULT_TIMEOUT = 200000 * 1000000000;
// Make RESTful webservice call using AsyncHttpClient object
AsyncHttpClient client = new AsyncHttpClient();
client.setTimeout(DEFAULT_TIMEOUT);
//client.get("http://182.188.33.27:9009/useraccount/login/dologin",params ,new AsyncHttpResponseHandler() {
client.get("http://koha.cdtl.com.sg/cgi-bin/koha/ilsdi.pl?service=AuthenticatePatron",params ,new AsyncHttpResponseHandler() {
// When the response returned by REST has Http response code '200'
@Override
public void onSuccess(String response) {
// Hide Progress Dialog
prgDialog.hide();
try {
// JSON Object
JSONObject obj = new JSONObject(response);
// When the JSON response has status boolean value assigned with true
if(obj.getBoolean("status")){
Toast.makeText(getApplicationContext(), "You are successfully logged in!", Toast.LENGTH_LONG).show();
// Navigate to Home screen
navigatetoHomeActivity();
}
// Else display error message
else{
errorMsg.setText(obj.getString("error_msg"));
Toast.makeText(getApplicationContext(), obj.getString("error_msg"), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
// When the response returned by REST has Http response code other than '200'
@Override
public void onFailure(int statusCode, Throwable error,
String content) {
// Hide Progress Dialog
prgDialog.hide();
// When Http response code is '404'
if(statusCode == 404){
Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show();
}
// When Http response code is '500'
else if(statusCode == 500){
Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show();
}
// When Http response code other than 404, 500
else{
Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet or remote server is not up and running]", Toast.LENGTH_LONG).show();
}
}
});
奇怪的是,有时它会显示出想要的结果:
Toast.makeText(getApplicationContext(),“您已成功登录!”,Toast.LENGTH\u LONG.show()
但主要是:
Toast.makeText(getApplicationContext(),“发生意外错误![最常见的错误:设备可能未连接到Internet或远程服务器未启动并运行]”,Toast.LENGTH_LONG).show()
我也尝试过清理和重建这个项目,但没有帮助
欢迎提出任何建议
最后,感谢您,我们成功地解决了所有不同的错误场景,包括error.getMessage()、error.toString()和error.getCause()的组合 Toast.makeText(getApplicationContext(),“状态代码:”+statusCode+“errmsg:”+error.getMessage(),Toast.LENGTH_LONG).show();
当前,您正在显示自定义消息,首先检查错误状态代码和错误内容,有许多状态代码您只处理两种情况最后,设法找出所有不同的错误场景,只是error.getMessage()、error.toString()和error.getCause()的组合 Toast.makeText(getApplicationContext(),“状态代码:”+statusCode+“errmsg:”+error.getMessage(),Toast.LENGTH_LONG).show();
当前您正在显示自定义消息,首先检查错误状态代码和错误内容,有许多状态代码您只处理两种情况Logcat:12-21 03:41:15.127 25254-25531/com.prgguru.example I/System.out:[CDS]close[38467]12-21 03:41:15.127 25254-25531/com.prgguru.example I/System.out:ex:java.net.SocketTimeoutException 12-21 03:41:15.128 25254-25531/com.prgguru.example W/System.err:java.net.SocketTimeoutException 12-21 03:41:15.128 25254-25531/com.prgguru.example W/System.err:at java.net.plainsockettimempl.read(PlainSocketImpl.java:497)12-21 03:41:15.128 25254-25531/com.prgguru.example W/System.err:at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:42)Logcat:12-21 03:41:15.127 25254-25531/com.prgguru.example I/System.out:[CDS]关闭[38467]12-21 03:41:15.127 25254-25531/com.prgguru.example I/System.out:ex:java.net.SocketTimeoutException 12-21 03:41:15.128 25254-25531/com.prgguru.example W/System.err:java.net.SocketTimeoutException 12-21 03:41:15.128 25254-25531/com.prgguru.example W/System.err:at java.net.plainsockettimempl.read(PlainSocketImpl.java:497)12-21 03:41:15.128 25254-25531/com.prgguru.example W/System.err:at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:42)返回的状态代码为0。我想是因为请求超时了。谢谢Vinayak的建议。在重新编写代码后,我能够解析它,代码中显示了许多这样的消息,我认为它进入了错误的循环。返回的状态代码为0。我想是因为请求超时了。谢谢Vinayak的建议。在重新编写代码之后,我能够解析它,我在代码中显示了许多这样的消息,我认为它进入了错误的循环。