2017-10-14 91 views
0

使用AsyncHttpClient我通过我的Android设备简单的GET请求,我的服务器发送。我的服务器需要认证。当我传递正确的登录名和密码时,它会显示应该显示的内容。此外,当认证是正确的,但有没有这样的在我的数据库中的值并没有返回404,它显示敬酒。此代码如下所示:AsyncHttpClient onFailure处方法没有显示出来敬酒时的验证是错误

@Override 
public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { 

    if (statusCode == 401) { 
     Toast.makeText(getActivity(), "Wrong authentication", Toast.LENGTH_SHORT).show(); 
    } 
    else if (statusCode == 404) { 
     Toast.makeText(getActivity(), "No content", Toast.LENGTH_SHORT).show(); 
    } 
    else if (statusCode == 500) { 
     Toast.makeText(getActivity(), "There's something wrong with a server!", Toast.LENGTH_SHORT).show(); 
    } 
    else { 
     Toast.makeText(getActivity(), throwable.toString(), Toast.LENGTH_SHORT).show(); 
    } 
} 

正如您所看到的,我还希望在身份验证错误时显示TOAST。但是,当401状态码返回时,TOAST不显示。这是我从android工作室的例外:

W/JsonHttpRH: onFailure(int, Header[], String, Throwable) was not overriden, but callback was received 
       cz.msebera.android.httpclient.client.HttpResponseException: UNAUTHORIZED 
        at com.loopj.android.http.AsyncHttpResponseHandler.sendResponseMessage(AsyncHttpResponseHandler.java:446) 
        at com.loopj.android.http.AsyncHttpRequest.makeRequest(AsyncHttpRequest.java:160) 
        at com.loopj.android.http.AsyncHttpRequest.makeRequestWithRetries(AsyncHttpRequest.java:177) 
        at com.loopj.android.http.AsyncHttpRequest.run(AsyncHttpRequest.java:106) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
        at java.lang.Thread.run(Thread.java:818) 

什么可能会导致此问题?由于

编辑:

这里有日志时,“未找到”的内容,但授权是正确的。不幸的是,下面的日志不会出现。顺便说一句,我的烤不会出现在我的应用程序...

Log.d("Failed: ", "" + statusCode); 
Log.d("Error : ", "" + throwable); 

enter image description here

这里有日志时,授权是错误的。出现下面的日志。顺便说一句,我的烤也出现在我的应用程序...

Log.d("Failed: ", "" + statusCode); 
Log.d("Error : ", "" + throwable); 

enter image description here

回答

1

与以下重写正确的方法试试,

@Override 
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) { 
     super.onFailure(statusCode, headers, responseString, throwable); 
     Log.d("Failed: ", ""+statusCode); 
     Log.d("Error : ", "" + throwable); 
    } 
+0

它甚至没有记录任何..它只是抛出一个例外如上 – pingwin850

+0

我真的不明白它..现在用'super.onFailure(statusCode,headers,responseString,throwable);'它显示“错误的身份验证”..但是,没有显示“没有内容“toast to .. – pingwin850

+0

你可以在这里发布新日志,打印一个日志与状态代码也看到你得到。 – Gaurav