okhelper的使用

版权声明:本文为延成原创文章,转载请标明出处

okhelper是对okhttp3的封装,为了使实际开发过程中对网络请求的使用更加的快捷、方便、易用。github地址:https://github.com/enChenging/okhelper

用法

Android Studio

将其添加到存储库build.gradle中

allprojects {
    repositories {
      	...
        maven{url 'https://jitpack.io'}
    }
}

在build.gradle文件中的dependencies下添加引用:

implementation 'com.github.enChenging:okhelper:1.0.2'

配置OkhttpClient

默认使用okhttpClient的原始配置,如果需要对OkhttpClient配置可以在Application下进行配置:

	 OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                .readTimeout(10000L, TimeUnit.MILLISECONDS)
                .addInterceptor(new LoggingInterceptor())
                .hostnameVerifier(HttpsSSL.getHostnameVerifier())
                .sslSocketFactory(HttpsSSL.getSSLSocketFactory())
                .build();

        OkHelper.initClient(okHttpClient);

对于Log

提供了一个LoggingInterceptor拦截器,可以自定义拦截器

 .addInterceptor(new LoggingInterceptor())

对于Https

  • 提供了HttpsSSL类
  • 不验证直接通过所有的https连接,调用getSSLSocketFactory() 方法
.sslSocketFactory(HttpsSSL.getSSLSocketFactory())
  • 带证书验证,调用getSSLSocketFactory(Context context, String fileName)方法,传入assets文件夹下的证书名称
.sslSocketFactory(HttpsSSL.getSSLSocketFactory(getApplicationContext(),"xxx.cer"))

get请求

 OkHelper.get("url").execute(mICallback);
 private ICallback mICallback = new StringCallBack() {
        @Override
        public void onError(Call call, Exception e, int id) {
            Log.e(TAG, "onError: " + e);
        }

        @Override
        public void onResponse(String response, int id) {
            mTv.setText(response);
        }
    };

getHttps请求

OkHelper.get("url").execute(mICallback);

getImage请求

OkHelper.get("url").execute(new BitmapCallBack() {
            @Override
            public void onError(Call call, Exception e, int id) {

            }

            @Override
            public void onResponse(Bitmap response, int id) {
                mImageView.setImageBitmap(response);
            }
        });

post请求

  OkHelper.post("url")
          .param("key", "value")
          .execute(mICallback);

postString请求

   OkHelper.postString("url")
                .header("key", "value")
                .header("key", "value")
                .content("json")
                .execute(mICallback);

postFile上传文件

 File file = new File(Environment.getExternalStorageDirectory(), "test.txt");
        OkHelper.postFile("url")
                .file(file)
                .execute(mICallback);

将文件作为请求体,发送到服务器。

uploadFile上传文件

  File file = new File(Environment.getExternalStorageDirectory(), "test.txt");
        Map<String, String> params = new HashMap<>();
        params.put("key", "value");
        params.put("key", "value");

        Map<String, String> headers = new HashMap<>();
        headers.put("key", "value");
        headers.put("key", "value");

        OkHelper.post("url")
                .file("file", "test.txt", file)
                .params(params)
                .headers(headers)
                .execute(mICallback);

multiFileUpload多文件上传

File file = new File(Environment.getExternalStorageDirectory(), "test.txt");
        File file2 = new File(Environment.getExternalStorageDirectory(), "test2.txt");
        Map<String, String> params = new HashMap<>();
        params.put("key", "value");
        params.put("key", "value");

        OkHelper.post("url")
                .file("file", "test.txt", file)
                .file("file", "test2.txt", file2)
                .params(params)
                .execute(mICallback);

文件下载

        OkHelper.get("url")
                .execute(new FileCallBack(Environment.getExternalStorageDirectory() + "/downloadFile/", "test.apk") {


                    @Override
                    public void inProgress(float progress, long total) {
                        mProgressBar.setProgress((int) (100 * progress));
                    }

                    @Override
                    public void onError(Call call, Exception e, int id) {
                        Log.e(TAG, "onError: " + e.toString());
                    }

                    @Override
                    public void onResponse(File response, int id) {
                        Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
                        Log.i(TAG, "onResponse: " + response.getAbsolutePath());
                    }
                });

混淆

#okhttputils
-dontwarn com.release.okhelper.**
-keep class com.release.okhelper.**{*;}

#okhttp
-dontwarn okhttp3.**
-keep class okhttp3.**{*;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值