2017-10-14 82 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