wjc
2026-03-04 ee4f83fd6c214f67d6abcaf47e6bf5f913825e52
2026年03月04日13:24:24
1个文件已修改
77 ■■■■■ 已修改文件
app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
@@ -29,6 +29,8 @@
import com.hdl.photovoltaic.utils.LocalManageUtil;
import com.hdl.photovoltaic.utils.Md5Utils;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -36,11 +38,13 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.ConnectionPool;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
@@ -99,20 +103,24 @@
        return "";
    }
    private  final OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(30, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .writeTimeout(30, TimeUnit.SECONDS)
//            .connectionPool(new ConnectionPool(10, 5, TimeUnit.MINUTES))  // 连接池复用
            .build();
    /**
     * 获取json资源用的
     *
     * @param url      地址
     * @param callBack 回调
     */
    public void requestJsonHttpGet(String url, CloudCallBeak<String> callBack) {
    public void requestJsonHttpGetSync(String url, CloudCallBeak<String> callBack) {
        if (TextUtils.isEmpty(url)) {
            if (callBack != null) {
                callBack.onSuccess("");
            }
        }
        HdlThreadLogic.runSubThread(new Runnable() {
            @Override
            public void run() {
@@ -149,7 +157,70 @@
        });
    }
    public void requestJsonHttpGet(String url, CloudCallBeak<String> callBack) {
        if (TextUtils.isEmpty(url)) {
            if (callBack != null) {
                callBack.onSuccess("");
            }
            return;
        }
        Request request = new Request.Builder()
                .url(url)
                .addHeader("Accept-Language", UserConfigManage.getInstance().getCurrentAppLanguage())
                .build();
        //使用异步请求 enqueue()
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(@NotNull Call call, @NotNull IOException e) {
                if (callBack != null) {
                    // 切回主线程回调(因为 callBack 可能涉及 UI 操作)
                    HdlThreadLogic.runMainThread(new Runnable() {
                        @Override
                        public void run() {
                            callBack.onFailure(new HDLException(-20002, e.getMessage()));
                        }
                    });
                }
            }
            @Override
            public void onResponse(@NotNull Call call, @NotNull Response response) {
                try  {  // 自动关闭
                    if (response.isSuccessful() && response.body() != null) {
                        String str = response.body().string();
                        if (callBack != null) {
                            // ⭐ 切回主线程
                           HdlThreadLogic.runMainThread(() ->
                                    callBack.onSuccess(str)
                            );
                        }
                    } else {
                        if (callBack != null) {
                            HdlThreadLogic.runMainThread(() ->
                                    callBack.onSuccess("")
                            );
                        }
                    }
                } catch (IOException e) {
                    if (callBack != null) {
                        HdlThreadLogic.runMainThread(new Runnable() {
                            @Override
                            public void run() {
                                callBack.onFailure(new HDLException(-20002, e.getMessage()));
                            }
                        });
                    }
                }finally {
                    response.close();
                }
            }
        });
    }
    /**
     * 请求服务器(get)