app/src/main/java/me/zhanghai/android/douya/network/api/ApiRequest.java

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
 * All Rights Reserved.
 */

package me.zhanghai.android.douya.network.api;

import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.Authenticator;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.Gson;
import com.google.gson.JsonParseException;
import com.google.gson.reflect.TypeToken;

import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;

import me.zhanghai.android.douya.network.Request;
import me.zhanghai.android.douya.network.Volley;
import me.zhanghai.android.douya.util.GsonHelper;
import me.zhanghai.android.douya.util.LogUtils;

public class ApiRequest<T> extends Request<T> {

    private Type mType;
    private Authenticator mAuthenticator;
    private String mAuthToken;

    public ApiRequest(int method, String url, Type type) {
        super(method, url);

        mType = type;
        mAuthenticator = Volley.getInstance().getAuthenticator();

        setRetryPolicy(new RetryPolicy(ApiContract.Request.Base.INITIAL_TIMEOUT_MS,
                ApiContract.Request.Base.MAX_NUM_RETRIES,
                ApiContract.Request.Base.BACKOFF_MULTIPLIER));
    }

    public ApiRequest(int method, String url, TypeToken<T> typeToken) {
        this(method, url, typeToken.getType());
    }

    @Override
    public void onPreparePerformRequest() throws AuthFailureError {
        setAuthorization();
    }

    @Override
    protected Response<T> parseNetworkResponse(NetworkResponse response) {
        Gson gson = GsonHelper.get();
        String responseString;
        try {
            responseString = new String(response.data,
                    HttpHeaderParser.parseCharset(response.headers));
后面还有 49 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。