Volley和处理Flickr errorCodes

时间:2015-03-09 15:21:50

标签: android android-volley flickr

我在Android developer guidelines

之后实施了一个简单的齐射自定义请求
GsonRequest<FlickrResponsePhotos> gsonObjRequest = new GsonRequest<>(myRequest.getRequestMethodType(), myRequest.getApiUrl(),
                FlickrResponsePhotos.class, null, new Response.Listener<FlickrResponsePhotos>() {
            @Override
            public void onResponse(FlickrResponsePhotos response) {
                parseResponse(response)
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                // Handle your error types accordingly.For Timeout & No connection error, you can show 'retry' button.
                // For AuthFailure, you can re login with user credentials.
                // For ClientError, 400 & 401, Errors happening on client side when sending api request.
                // In this case you can check how client is forming the api and debug accordingly.
                // For ServerError 5xx, you can do retry or handle accordingly.
                if (error instanceof NetworkError) {
                } else if( error instanceof ServerError) {
                } else if( error instanceof AuthFailureError) {
                } else if( error instanceof ParseError) {
                } else if( error instanceof NoConnectionError) {
                } else if( error instanceof TimeoutError) {
                }
            }
        });

我查看了Flickr Api中的错误代码,例如flickr.commons.getInstitutions,寻找解决方案来处理它们。

在[GsonRequest]类中,我们有一个名为parseNetworkResponse的方法:

@Override
    protected Response<T> parseNetworkResponse(NetworkResponse response) {
        try {
            String json = new String(
                    response.data,
                    HttpHeaderParser.parseCharset(response.headers));
            return Response.success(
                    gson.fromJson(json, clazz),
                    HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        } catch (JsonSyntaxException e) {
            return Response.error(new ParseError(e));
        }
    }

我刚刚将无效的Flickr API密钥传递给了我的网址,我期望NetworkResponse状态代码为100,但我仍然在上面的方法中得到200!

然后我想知道在使用Volley时如何处理为每种方法指定的Flickr错误代码?

0 个答案:

没有答案
相关问题