栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

OKhttp3工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OKhttp3工具类

本人开发过程中使用到的工具类,记录在此,包含的方法都是自己用到的,并不全面
如有使用者自取
有好的意见或不完善之处欢迎指出

AndroidManifest.xml 里 application中

权限申请







android:networkSecurityConfig="@xml/network_security_config"
network-security-config.xml



    127.0.0.1
    192.168.100.192
    qingshanboke.com


OKhttpUtils
public class OKhttpUtils {

    private static OkHttpClient okHttpClient;

    public OKhttpUtils(){
        okHttpClient=new OkHttpClient().newBuilder()
                .callTimeout(8, TimeUnit.SECONDS)
                .connectTimeout(8,TimeUnit.SECONDS)
                .readTimeout(8,TimeUnit.SECONDS)
                .build();
    }

    private static OKhttpUtils instance;

    public static OKhttpUtils getInstance() {
        if (instance==null){
            instance=new OKhttpUtils();
        }
        return instance;
    }


    //get方法
    public static void get(final String url, final OkhttpCallBack okhttpCallBack){
        try {
            final Thread thread=new Thread(new Runnable() {
                @Override
                public void run() {

                    getInstance();
                    Request request = new Request.Builder()
                            .url(url)
                            .method("GET", null)
                            .addHeader("Accept", "application/json")
                            .addHeader("User-Agent", "apifox/1.0.26 (https://www.apifox.cn)")
                            .build();

                    okHttpClient.newCall(request).enqueue(new Callback() {
                        @Override
                        public void onFailure(@NotNull Call call, @NotNull IOException e) {
                            okhttpCallBack.onFail(e.getMessage()+"失败的");
                            Log.i("asd",e.getMessage());
                        }

                        @Override
                        public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                            okhttpCallBack.onSuccess(response);
                            Log.i("asd","OKHTTPUtils连接成功");
                        }
                    });
                }
            });
            thread.start();} catch (Exception e) {
            e.printStackTrace();
            Log.i("asd","OKHTTPUtils连接失败");
        }
    }
    //get方法
    public static void get_token( final String token,final String url, final OkhttpCallBack okhttpCallBack){
        try {
            final Thread thread=new Thread(new Runnable() {
                @Override
                public void run() {

                    getInstance();
                    Request request = new Request.Builder()
                            .url(url)
                            .method("GET", null)
                            .addHeader("Authorization", token)
                            .addHeader("User-Agent", "apifox/1.0.26 (https://www.apifox.cn)")
                            .build();

                    okHttpClient.newCall(request).enqueue(new Callback() {
                        @Override
                        public void onFailure(@NotNull Call call, @NotNull IOException e) {
                            okhttpCallBack.onFail(e.getMessage()+"asdfghjkl");
                            Log.i("asd",e.getMessage());
                        }

                        @Override
                        public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                            okhttpCallBack.onSuccess(response);
                            Log.i("asd","OKHTTPUtils连接成功");
                        }
                    });
                }
            });
            thread.start();} catch (Exception e) {
            e.printStackTrace();
            Log.i("asd","OKHTTPUtils连接失败");
        }
    }

    // post json数据  token数据
    public static void post_json(final String token,final String url, final String json,  final OkhttpCallBack okhttpCallBack) throws JSONException {

        try {
            Thread thread=new Thread(new Runnable() {
                @Override
                public void run() {
                    getInstance();
                    try {
                        JSONObject jsonObject=new JSONObject(json);

                        MediaType mediaType = MediaType.parse("application/json");
                        RequestBody body = RequestBody.create(mediaType,jsonObject.toString() );

                  
                        Request request = new Request.Builder()
                                .url(url)
                                .post(body)
                                .addHeader("Accept", "application/json")
                                .addHeader("Authorization", token)
                                .addHeader("User-Agent", "apifox/1.0.26 (https://www.apifox.cn)")
                                .addHeader("Content-Type", "application/json")
                                .build();
                        okHttpClient.newCall(request).enqueue(new Callback() {
                            @Override
                            public void onFailure(@NotNull Call call, @NotNull IOException e) {
                                okhttpCallBack.onFail(e.getMessage() + "失败的OKHTTP返回数据");
                            }

                            @Override
                            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                                okhttpCallBack.onSuccess(response);
                                Log.i("asd","OKHTTPUtils连接成功");
                            }

                        });

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            thread.start();  } catch (Exception e) {
            e.printStackTrace();
            Log.i("asd","OKHTTPUtils连接失败");
        }
    }


    // post form数据  token数据
    public static void post_form(final String token, final String title, final String content, final int  id, final OkhttpCallBack okhttpCallBack) throws JSONException {

        try {
            Thread thread=new Thread(new Runnable() {
                @Override
                public void run() {
                    getInstance();
                    try {

                        MediaType mediaType = MediaType.parse("text/form-data");
                        RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)

                                .addFormDataPart("banner_id", String.valueOf(id))
                                .addFormDataPart("title", title)
                                .addFormDataPart("content", content)
                                .build();

                        Request request = new Request.Builder()
                                .url("http://47.102.215.61:8888/news/release_news")
                                .post(body)
                                .addHeader("Accept", "application/json")
                                .addHeader("Authorization", token)
                                .addHeader("User-Agent", "apifox/1.0.26 (https://www.apifox.cn)")
                                .addHeader("Content-Type", "application/json")
                                .build();
                        okHttpClient.newCall(request).enqueue(new Callback() {
                            @Override
                            public void onFailure(@NotNull Call call, @NotNull IOException e) {
                                okhttpCallBack.onFail(e.getMessage() + "失败的OKHTTP返回数据");
                            }

                            @Override
                            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
                                okhttpCallBack.onSuccess(response);
                                Log.i("asd","OKHTTPUtils连接成功hh");
                            }

                        });

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            thread.start();  } catch (Exception e) {
            e.printStackTrace();
            Log.i("asd","OKHTTPUtils连接失败");
        }
    }
    //数据返回
    public interface OkhttpCallBack{
        void onSuccess(Response response) throws IOException;
        void onFail(String error);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号