From 734babb3a7348050fdffe845c560ba8b0b218152 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期一, 20 十一月 2023 18:24:43 +0800 Subject: [PATCH] 2023年11月20日18:24:36 --- app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 140 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java b/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java index d8fce79..e4f21cd 100644 --- a/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java +++ b/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java @@ -8,14 +8,24 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; +import com.hdl.hdlhttp.HxHttp; +import com.hdl.hdlhttp.HxHttpBuilder; import com.hdl.hdlhttp.utils.GsonConvert; +import com.hdl.linkpm.sdk.core.api.HDLCloudUserApi; +import com.hdl.linkpm.sdk.core.exception.HDLException; +import com.hdl.linkpm.sdk.core.response.HDLResponse; +import com.hdl.linkpm.sdk.user.bean.HDLLoginBean; +import com.hdl.linkpm.sdk.user.callback.ILoginCallBack; +import com.hdl.linkpm.sdk.utils.HDLExceptionSubmitUtils; import com.hdl.photovoltaic.bean.HttpResponsePack; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; +import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.utils.HDLMD5Utils; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -23,9 +33,11 @@ import java.util.Map; import java.util.Objects; +import io.reactivex.rxjava3.disposables.Disposable; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody; +import okhttp3.Headers; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; @@ -49,28 +61,139 @@ } /** - * 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶 + * 璇锋眰鏈嶅姟鍣� + * 搴曞眰鏂规硶,寮曠敤搴撶殑鏂规硶 + * + * @param api 璇锋眰鎺ュ彛 + * @param body 璇锋眰鍙傛暟(appKey,timestamp,sign杩欎笁涓弬鏁板唴閮ㄤ細鑷姩娣诲姞)) + * @param callBack 鍥炶皟 + * @return - + */ + private Disposable request(String api, String body, CloudCallBeak<String> callBack) { + + + String requestUrl = HDLCloudUserApi.getRequestUrl(api); + Gson gson = new Gson(); + System.out.println("http->鍙戦��->" + requestUrl + "\r\n" + body); + return HxHttp.builder() + .url(requestUrl) + .raw(body) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String str) { + if (callBack != null) { + callBack.onSuccess(str); +// System.out.println("http->鍥炲->" + requestUrl + "\r\n" + gson.fromJson(str, JsonObject.class).toString()); + System.out.println("http->鍥炲->" + requestUrl + "\r\n" + str); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl, body, e); + if (callBack != null) { + callBack.onFailure(e); + System.out.println("http->鍥炲->" + requestUrl + "\r\n" + "\"{code=\"" + e.getCode() + "," + "\"message=\"" + e.getMsg() + "}"); + } + } + }); + + } + + /** + * 璇锋眰鏈嶅姟鍣� + * 搴曞眰鏂规硶,寮曠敤搴撶殑鏂规硶 + * + * @param api 璇锋眰鎺ュ彛 + * @param body 璇锋眰鍙傛暟(appKey,timestamp,sign杩欎笁涓弬鏁板唴閮ㄤ細鑷姩娣诲姞)) + * @param callBack 鍥炶皟 + * @return - + */ + private Disposable requestFile(String api, File body, CloudCallBeak<String> callBack) { + + + String requestUrl = HDLCloudUserApi.getRequestUrl(api); + Gson gson = new Gson(); + System.out.println("http->鍙戦��->" + requestUrl + "\r\n" + body); + return HxHttp.builder() + .url(requestUrl) + .file(body) + .build() + .post() + .subscribeWith(new HDLResponse<String>() { + @Override + public void onResponse(String str) { + if (callBack != null) { + callBack.onSuccess(str); +// System.out.println("http->鍥炲->" + requestUrl + "\r\n" + gson.fromJson(str, JsonObject.class).toString()); + HdlLogLogic.print("http->鍥炲->" + requestUrl + "\r\n" + str, true); + } + } + + @Override + public void onFailure(HDLException e) { + HDLExceptionSubmitUtils.submit(requestUrl, body, e); + if (callBack != null) { + callBack.onFailure(e); + HdlLogLogic.print("http->鍥炲->" + requestUrl + "\r\n" + "\"{code=\"" + e.getCode() + "," + "\"message=\"" + e.getMsg() + "}", true); + } + } + }); + + } + + + /** + * 璇锋眰鏈嶅姟鍣� + * + * @param api 璇锋眰鎺ュ彛 + * @param body 璇锋眰鍙傛暟(json) + * @param callBack 鍥炶皟 + */ + public Disposable requestHttp(String api, String body, CloudCallBeak<String> callBack) { + return request(api, body, callBack); + } + + /** + * 璇锋眰鏈嶅姟鍣紙涓婁紶鏂囦欢锛� + * + * @param api 璇锋眰鎺ュ彛 + * @param body 璇锋眰鍙傛暟(json) + * @param callBack 鍥炶皟 + */ + public Disposable requestHttpFile(String api, File body, CloudCallBeak<String> callBack) { + return requestFile(api, body, callBack); + } + + + /** + * 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶(宸插純鐢�) * * @param requestUrl 璇锋眰鎺ュ彛 * @param json 璇锋眰鏁版嵁 * @param isBasicService 鏄惁鏄熀纭�鏈嶅姟鐨勬帴鍙�(鍩虹鏈嶅姟鐨勬帴鍙i渶瑕� appKey,timestamp,sign杩欎笁涓弬鏁�,褰撲负true鏃�,鍐呴儴浼氳嚜鍔ㄦ坊鍔�) * @param isExecute 鏄惁鏄悓姝�(true=鍚屾,false=寮傛) */ - public void requestHttp(String requestUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { + @Deprecated + private void requestHttp(String requestUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { String fullUrl = AppConfigManage.getUserRegionUrl() + requestUrl; - this.requestHttps(fullUrl, json, isBasicService, isExecute, baseSuccessCallBeak); + this.requestHttpServer(fullUrl, json, isBasicService, isExecute, baseSuccessCallBeak); } /** - * 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶(鐩墠鍙敤鍦ㄨ幏鍙栬幏鍙栬处鍙峰尯鍩熶俊鎭�) + * 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶(宸插純鐢�) + * 鐩墠鍙敤鍦ㄨ幏鍙栬幏鍙栬处鍙峰尯鍩熶俊鎭� * * @param fullUrl 缁濆鍦板潃(鍦板潃+鎺ュ彛) * @param json 璇锋眰鏁版嵁 * @param isBasicService 鏄惁鏄熀纭�鏈嶅姟鐨勬帴鍙�(鍩虹鏈嶅姟鐨勬帴鍙i渶瑕� appKey,timestamp,sign杩欎笁涓弬鏁�,褰撲负true鏃�,鍐呴儴浼氳嚜鍔ㄦ坊鍔�) * @param isExecute 鏄惁鏄悓姝�(true=鍚屾,false=寮傛) */ - public void requestFullHttp(String fullUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { - this.requestHttps(fullUrl, json, isBasicService, isExecute, baseSuccessCallBeak); + @Deprecated + private void requestFullHttp(String fullUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { + this.requestHttpServer(fullUrl, json, isBasicService, isExecute, baseSuccessCallBeak); } /** @@ -81,17 +204,16 @@ * @param isBasicService 鏄惁鏄熀纭�鏈嶅姟鐨勬帴鍙�(鍩虹鏈嶅姟鐨勬帴鍙i渶瑕� appKey,timestamp,sign杩欎笁涓弬鏁�,褰撲负true鏃�,鍐呴儴浼氳嚜鍔ㄦ坊鍔�) * @param isExecute 鏄惁鏄悓姝�(true=鍚屾,false=寮傛) */ - private void requestHttps(String fullUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { + private void requestHttpServer(String fullUrl, String json, boolean isBasicService, boolean isExecute, BaseSuccessFailureCallBeak baseSuccessCallBeak) { new Thread(new Runnable() { @Override public void run() { try { - - HdlLogLogic.print("http->鍙戦��->", fullUrl + "\r\n" + json); + HdlLogLogic.print("http->鍙戦��->" + fullUrl + "\r\n" + json, false); OkHttpClient okHttpClient = new OkHttpClient(); RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), getJson(json)); final Request request = new Request.Builder() - .url(fullUrl)//璇锋眰鐨剈rl// + .url(fullUrl)//璇锋眰鐨剈rl .addHeader("Authorization", UserConfigManage.getInstance().getHeaderPrefix() + UserConfigManage.getInstance().getToken()) .post(requestBody) .build(); @@ -100,11 +222,12 @@ if (response.isSuccessful()) { String s = Objects.requireNonNull(response.body()).string(); HttpResponsePack httpResponsePack = new Gson().fromJson(s, HttpResponsePack.class); + HdlLogLogic.print("http->鍥炲->" + response.request().url() + "\r\n" + s, false); baseSuccessCallBeak.onSuccess(httpResponsePack); - HdlLogLogic.print("http->鍥炲->", response.request().url() + "\r\n" + s); + } else { //throw new IOException("Unexpected code " + response); - baseSuccessCallBeak.onFailure(new Exception()); + baseSuccessCallBeak.onFailure(new HDLException(response.code(), response.message())); } } else { @@ -112,8 +235,7 @@ call.enqueue(new Callback() {//寮傛 @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { - System.out.println("澶辫触" + e.toString()); - HdlLogLogic.print("http->鍥炲->", "\r\n" + e.getMessage()); + HdlLogLogic.print("http->鍥炲->" + "\r\n" + e.getMessage(), false); } @Override @@ -123,16 +245,16 @@ String s = Objects.requireNonNull(response.body()).string(); HttpResponsePack httpResponsePack = new Gson().fromJson(s, HttpResponsePack.class); baseSuccessCallBeak.onSuccess(httpResponsePack); - HdlLogLogic.print("http->鍥炲->", "\r\n" + s); + HdlLogLogic.print("http->鍥炲->" + "\r\n" + s, false); } else { - baseSuccessCallBeak.onFailure(new Exception()); + baseSuccessCallBeak.onFailure(new HDLException(response.code(), response.message())); } } }); } } catch (Exception e) { - baseSuccessCallBeak.onFailure(e); - HdlLogLogic.print("http->鍥炲->", "\r\n" + e.getMessage()); + baseSuccessCallBeak.onFailure(new HDLException(-100, e.getMessage())); + HdlLogLogic.print("http->鍥炲->" + "\r\n" + e.getMessage(), false); } } -- Gitblit v1.8.0