`

OkHttp通用简单封装

阅读更多

CommonOkHttp--通用OkHttp简单封装

一个用于Java应用(非安卓)的OkHttp的简单封装
github地址 https://keran213539.github.io/CommonOkHttp/
maven引入

<dependency>
    <groupId>com.github.keran213539</groupId>
    <artifactId>commonOkHttp</artifactId>
    <version>0.2</version>
</dependency>

折腾了一天,终于提交到maven中央仓库了,稍后会写一个如何提交到manven中央仓库的教程

背景

OkHttp,现在很火的一个Apache httpClient的替代品,说替代可能不太合适,至少是同类型的库吧.
最近想学习使用下,并找一个通用工具在新项目中使用(老项目使用httpClient).既然它现在这么火,别人写好的通用工具应该很好找(嗯,拿来主意),结果一番搜索后,确实找到不少,但都是Android的,安卓的组件封装进去了不少,还有下载,下载进度...服务端根本用不到啊...@%#$%#$ 好吧,找不到就自己写...
在这里向大家介绍一个不错的Android的http框架 OkGo,我参考了其中的https工具还有其他部分代码

如何使用

通过spring工厂

参考 com.github.keran213539.commonOkHttp.test.TestWithSpring, 在spring 配制文件中增加:

    <bean id="httpClientDefaultHttps" class="com.github.keran213539.commonOkHttp.CommonOkHttpClientFactory" />
    
    <bean id="httpClientNotSafe" class="com.github.keran213539.commonOkHttp.CommonOkHttpClientFactory">
        <property name="unSafe" value="true" />
    </bean>
    
    <bean id="httpClientCustomCertificate" class="com.github.keran213539.commonOkHttp.CommonOkHttpClientFactory">
        <property name="checkHostname" value="false" />
        <property name="certificateFilePaths">
            <list>
                <value>classpath*:cers/jianshu.cer</value>
            </list>
        </property>
    </bean>

通过spirng获取对应的bean使用

通过Builder

参考 com.github.keran213539.commonOkHttp.test.TestWithBuilder

    // 默认CA方式
    CommonOkHttpClient defaultHttps = new CommonOkHttpClientBuilder().build();
    // 不安全
    CommonOkHttpClient httpClientNotSafe = new CommonOkHttpClientBuilder().unSafe(true).build();
    // 指定信任证书
    List<URL> certificateFilePaths = new ArrayList<>();
    certificateFilePaths.add(ResourceUtils.getURL("classpath:cers/jianshu.cer"));
    CommonOkHttpClient httpClientCustomCertificate = new CommonOkHttpClientBuilder().checkHostname(false).certificateFilePaths(certificateFilePaths).build();

方法说明

String get(String url, IAsyncCallback callback)

发送 get 请求, 有 callback为异步,callback传null为同步;异步时返回null

String post(String url, IAsyncCallback callback)

使用无参方式发送post请求, 有 callback为异步,callback传null为同步;异步时返回null

String post(String url,String jsonStr, IAsyncCallback callback)

使用json方式发送post请求, 有 callback为异步,callback传null为同步;异步时返回null

String post(String url, Map<String, String> prarm, IAsyncCallback callback)

使用传统参数方式发送post请求, 有 callback为异步,callback传null为同步;异步时返回null

<T extends UploadFileBase> String post(String url, Map<String, String> prarm, List<T> files, IAsyncCallback callback)

文件上传(支持多文件)

关于测试

除了使用指定证书加解密数据的方式, 暂时没有条件测试,其他均已测试过,目前已知微信支付的退款需要使用这种方式,在上家公司做了微信支付,当时用的Apache HttpClient,之后会找机会测试
JUnit的测试中删除了部分在公网没有找到合适的测试环境的代码(部分测试环境我是在本机模拟的环境),如使用自签证书的,不安全的方式,上传等,大家可以自签个证书部署为https自测
代码中自定义信任证书的部分,删除了一些其他环境的证书,只保留了简书的证书作为代码示例

0
0
分享到:
评论
1 楼 masuweng 2018-04-08  
    

相关推荐

    OkHttp请求完美封装(并带工具类)

    MD5、RSA、Base64Utils、DialogUtil、ZXingUtils、GlideUtil、、、工具类 自己总结了一些必备的工具类,可直接放入工程,简单调用 对OkHttp进行了封装,简单调用,便于操作 进行了post、get、文件上传等进行封装

    okhttp二次封装

    1. **网络请求基础类**:封装了OkHttpClient实例,添加了通用配置,如连接超时、读写超时、重试策略等。 2. **请求构建器**:用于构建GET、POST等各种HTTP请求,支持添加自定义参数、Header等。 3. **响应处理**:...

    基于Retrofit、OkHttp、Gson封装通用网络框架

    本文将详细介绍如何基于Retrofit、OkHttp和Gson这三个强大的库来封装一个通用的网络框架。 Retrofit是由Square公司开发的一个类型安全的HTTP客户端,它使得在Android或Java中进行RESTful API调用变得简单易行。...

    RxJava+Retrofit2+Okhttp3经典封装demo

    这个"RxJava+Retrofit2+Okhttp3经典封装demo"将展示如何整合这三个库,实现优雅的异步网络调用。 RxJava是一个响应式编程库,它通过观察者模式和流的概念,简化了事件处理和数据管理。在Android中,RxJava常用于...

    封装好的OKHTTP

    在"封装好的OKHTTP" demo中,开发者可能已经预设了通用的配置,比如默认的超时时间、重试策略等。你只需要提供URL,调用预定义的方法,即可发起HTTP请求。例如,可能存在一个名为`sendRequest()`的公共方法,接受URL...

    【Android】RxJava2+Retrofit2+OkHttp3的基础、封装和项目中的使用

    例如,可以创建一个网络模块,包含Retrofit实例、OkHttp配置以及通用的请求方法。这样,其他业务模块只需要依赖网络模块,通过提供的接口发起请求,而无需关心底层实现。此外,通过RxBus可以实现组件间的通信,当...

    自己封装的OKHttp工具类,粘贴后直调用接

    【标题】:自己封装的OKHttp工具类,粘贴后直调用接 【知识点解析】: OKHttp是Android平台上一款高效、易用的网络请求...这就是一个简单的OKHttp工具类的封装和使用,它使得网络请求变得更加简单,提升了开发效率。

    Android-一个基于retrofitokhttpjson封装的网络框架

    在Android开发中,网络编程是不可或缺的一部分,而`Retrofit`、`OkHttp`和`Json`库的结合使用,为开发者提供了高效、简洁的网络请求解决方案。`Retrofit`是一个由Square公司开发的类型安全的HTTP客户端,它使得网络...

    Okhttp简单的二次回调封装Demo

    本Demo主要展示了如何对OkHttp进行简单的二次回调封装,以提高代码的可复用性和可维护性。 首先,我们需要理解OkHttp的基本用法。OkHttp允许我们创建一个`OkHttpClient`实例,然后通过这个实例发起网络请求。通常,...

    okhttp封装json解析

    本示例将探讨如何利用OkHttp进行网络请求,并结合JSON解析来创建一个简单的网络请求工具。下面我们将详细介绍这个过程。 首先,我们需要了解OkHttp的基本用法。OkHttp是一个异步HTTP客户端,它通过连接池和协议协商...

    okhttp封装

    在Android开发中,工具类(Utils Class)是程序员经常创建的一种辅助代码结构,用来封装一些通用功能,提高代码复用性和可维护性。本篇主要介绍一个基于张鸿洋(小灰灰)实现的OkHttp封装库,它是一个用于简化网络...

    封装好的okhttp的工具类

    通过使用封装好的OkhttpUtil,开发者可以避免重复编写网络请求的通用代码,提高开发效率,同时也能更好地专注于业务逻辑。不过,理解OkHttp的基本用法和原理仍然是必要的,这样在遇到问题时能更快速地定位和解决。

    okHttp基于App研发录网络框架的封装

    本篇将深入探讨如何基于包建强老师的App研发录,使用OkHttp来封装一个适用于App的网络框架。 首先,我们需要理解OkHttp的优势。OkHttp以其高效的连接管理、缓存机制和强大的请求处理能力而闻名。它的设计目标是减少...

    封装 okhttp

    **封装 OkHttp** 在 Android 开发中,网络请求是一个非常重要的环节,而 OkHttp 是一个高效、易用的网络库,被广泛应用于各种项目中。本文将详细介绍如何封装 OkHttp 工具类,以实现更方便、灵活的网络请求功能,并...

    android Retrofit+OKhttp实现接口调用

    为了方便复用和管理,可以创建一个基类,将接口调用的通用逻辑封装起来。这个基类可以处理错误处理、网络状态检查、请求回调等,子类只需要关注具体的接口调用即可。 总结,Android中使用Retrofit+OkHttp实现接口...

    okhttp-RxHttp:on基于OkHttp封装,支持Kotlin协程,RxJava2,RxJava3; 30秒钟开始

    基于OkHttp编写1,特点支持Kotlin协程,RxJava2,RxJava3 支持Gson,Xml,ProtoBuf,FastJson和其他第三方数据解析工具支持自动关闭FragmentActivity,Fragment,View,ViewModel和任何类中的请求支持全局加密和...

    基于鸿洋okhttputils 封装数据 bean和callback 回调

    OkHttp是一个高效的HTTP客户端库,而OkHttpUtils是由知名Android开发者鸿洋(Hongyang)基于OkHttp进行封装的一个工具库,它简化了OkHttp的使用,使其更符合Android开发者的习惯。本主题主要探讨的是如何基于鸿洋的...

    MVP简单封装

    本项目名为"MVP简单封装",主要目的是对MVP框架进行轻量级的封装,以方便开发者在实际项目中快速集成和使用。下面我们将详细探讨MVP架构及其在这个封装过程中的关键点。 **MVP架构介绍** MVP架构由三个核心组件组成...

    自定义网络请求,对网络请求的简单封装

    本项目“自定义网络请求,对网络请求的简单封装”旨在提供一种通用的解决方案,使得在网络请求框架变更时,应用的核心逻辑能够保持稳定,减少因更换库而带来的代码修改工作。 首先,我们需要理解网络请求的基本概念...

    Android网络请求封装,可动态切换网络引擎

    通常,封装会包括URL构建、请求参数处理、请求头设置、错误处理等通用功能,并提供统一的调用接口,使得业务代码更简洁明了。 接下来,我们关注"Android Http"。在Android系统中,HTTP请求可以通过多种方式实现,如...

Global site tag (gtag.js) - Google Analytics