工具类

import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.Map;/** * http 申请工具 * * @author Tellsea * @date 2021-11-24 */public class HttpUtils {    /**     * get申请封装     *     * @param url     * @param params     * @param encode     * @param listener     */    public static void getRequest(String url, Map<String, String> params, String encode, OnResponseListener listener) {        StringBuffer sb = new StringBuffer(url);        sb.append("?");        if (params != null && !params.isEmpty()) {            //加强for遍历循环增加拼接申请内容            for (Map.Entry<String, String> entry : params.entrySet()) {                sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");            }            sb.deleteCharAt(sb.length() - 1);            if (listener != null) {                try {                    URL path = new URL(sb.toString());                    if (path != null) {                        HttpURLConnection con = (HttpURLConnection) path.openConnection();                        //设置申请形式                        con.setRequestMethod("GET");                        //链接超时3秒                        con.setConnectTimeout(3000);                        con.setDoOutput(true);                        con.setDoInput(true);                        OutputStream os = con.getOutputStream();                        os.write(sb.toString().getBytes(encode));                        os.close();                        //应答码200示意申请胜利                        if (con.getResponseCode() == 200) {                            onSuccess(encode, listener, con);                        }                    }                } catch (Exception error) {                    error.printStackTrace();                    onError(listener, error);                }            }        }    }    /**     * POST申请     *     * @param url     * @param params     * @param encode     * @param listener     */    public static void postRequest(String url, Map<String, String> params, String encode, OnResponseListener listener) {        StringBuffer sb = new StringBuffer();        if (params != null && !params.isEmpty()) {            for (Map.Entry<String, String> entry : params.entrySet()) {                sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");            }            sb.deleteCharAt(sb.length() - 1);        }        if (listener != null) {            try {                URL path = new URL(url);                if (path != null) {                    HttpURLConnection con = (HttpURLConnection) path.openConnection();                    con.setRequestMethod("POST");   //设置申请办法POST                    con.setConnectTimeout(3000);                    con.setDoOutput(true);                    con.setDoInput(true);                    byte[] bytes = sb.toString().getBytes();                    OutputStream outputStream = con.getOutputStream();                    outputStream.write(bytes);                    outputStream.close();                    if (con.getResponseCode() == 200) {                        onSuccess(encode, listener, con);                    }                }            } catch (Exception e) {                e.printStackTrace();                onError(listener, e);            }        }    }    private static void onError(OnResponseListener listener, Exception onError) {        listener.onError(onError.toString());    }    private static void onSuccess(String encode, OnResponseListener listener, HttpURLConnection con) throws IOException {        InputStream inputStream = con.getInputStream();        //创立内存输入流        ByteArrayOutputStream baos = new ByteArrayOutputStream();        int len = 0;        byte[] bytes = new byte[1024];        if (inputStream != null) {            while ((len = inputStream.read(bytes)) != -1) {                baos.write(bytes, 0, len);            }            String str = new String(baos.toByteArray(), encode);            listener.onSuccess(str);        }    }}
/** * 申请回调 * * @author Tellsea * @date 2021-11-24 */public interface OnResponseListener {    void onSuccess(String response);    void onError(String error);}

应用案例

Map<String, String> map = new HashMap<>();  map.put("extract", encrypt);  HttpUtils.getRequest("http://tellsea.4kb.cn/arcFace/arcFace", map, "utf-8", new OnResponseListener() {     @Override     public void onSuccess(String response) {         System.out.println(response);         AjaxResult result = new Gson().fromJson(response, AjaxResult.class);         if (IntegerUtils.eq(result.getCode(), 200)) {             // 解决逻辑业务         } else {             // 辨认失败         }     }     @Override     public void onError(String error) {         System.out.println("申请失败:" + error);     }  });