我在处理asynchttpclient
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
closeProgressDialog();
Log.e("DB", String.valueOf(error));
Log.e("DB", String.valueOf(error.getCause() instanceof ConnectTimeoutException));
}
第一个日志会给出回复cz.msebera.android.httpclient.conn.ConnectTimeoutException: Connect to /192.168.0.107:80 timed out
第二个日志提供null
或false
我想处理超时异常我应该怎么做?
答案 0 :(得分:2)
您的第二次日志操作基于
error.getCause()
为null或不是ConnectTimeoutException
,而在第一个日志操作中,您直接使用方法参数中给出的Throwable
。
因此,我建议您使用error
而非error.getCause()
来处理ConnectTimeoutException
。
Log.e("DB", String.valueOf(error instanceof ConnectTimeoutException)); // --> Should be true now
答案 1 :(得分:0)
我建议增加超时
client.setTimeout(15000);
然后覆盖所有onFailure方法。
@Override
public void onFailure(Throwable error, String content) {
if ( error.getCause() instanceof ConnectTimeoutException ) {
System.out.println("Connection timeout !");
}
}
我希望这能解决问题