2013-08-20 17 views
10

Volley zwraca błąd, gdy odpowiedź 404 jest zwracana z serwera, nawet jeśli ta odpowiedź 404 zawiera kody błędów oparte na jsonach. Nie analizuje odpowiedzi 404, która zawiera kod Jason {code: resourceNotFound, msg: message_index}Brak odpowiedzi na saldo 04043

Czy mimo to chcesz, aby Volley przetwarzała JSon w wiadomości 404? Usługa, z którą się integruję, zwraca 404, gdy nie można znaleźć zasobu.

Odpowiedz

34

Jeśli otrzymasz odpowiedź 404, powinna dostać się do dowolnego ustawionego detektora błędów. Otrzymujesz obiekt VolleyError w detektorze błędów. Możesz uzyskać odpowiedź sieciową z tego obiektu, a następnie dane z ciała odpowiedzi. Jest podana jako tablica znaków, więc musisz ją przekonwertować na coś innego.

Poniższy fragment jest prostą prośbą, która to umożliwia, ale musisz wpisać własny adres URL.

1

Zamieszczam to, ponieważ poświęcam jeden dzień na to i nie chcę, aby ktokolwiek walczył tak samo.

ANS: Jeśli ktoś chce dodać Ciało/nagłówki do wywołania POST następnie dodać kod poniżej

@Override 
       public HashMap<String, String> getHeaders() throws AuthFailureError { 
        HashMap<String, String> params = new HashMap<>(); 
        params.put("apikey", Constants.apiKey); 
        params.put("env", Constants.enviroment); 
        params.put("Content-Type", "application/json"); 
        return params; 
       } 

       @Override 
       public byte[] getBody() throws AuthFailureError { 
        return gson.toJson(user).getBytes(); 
       } 

Jeżeli użytkownik jest Object można przekazać do ciała.

Happy Coding :)

Powiązane problemy