android okhttp https请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android okhttp https请求相关的知识,希望对你有一定的参考价值。

参考技术A  忽略SSL证书的方法

//获取TrustManager

    private static TrustManager[] getTrustManager()

        //不校检证书链

        TrustManager[] trustAllCerts = new TrustManager[]

                new X509TrustManager()

                    @Override

                    public void checkClientTrusted(X509Certificate[] chain, String authType)

                        //不校检客户端证书

                   

                    @Override

                    public void checkServerTrusted(X509Certificate[] chain, String authType)

                        //不校检服务器证书

                   

                    @Override

                    public X509Certificate[] getAcceptedIssuers()

                        return new X509Certificate[];

                        //OKhttp3.0以前返回null,3.0以后返回new X509Certificate[];

                   

               

        ;

        return trustAllCerts;

   

//获取这个SSLSocketFactory

    //通过这个类我们可以获得SSLSocketFactory,这个东西就是用来管理证书和信任证书的

    public static SSLSocketFactory getSSLSocketFactory()

        try

            SSLContext sslContext = SSLContext.getInstance("SSL");

            sslContext.init(null, getTrustManager(), new SecureRandom());

            return sslContext.getSocketFactory();

        catch (Exception e)

            throw new RuntimeException(e);

       

   

//获取HostnameVerifier

    public static HostnameVerifier getHostnameVerifier()

        HostnameVerifier hostnameVerifier = new HostnameVerifier()

            @Override

            public boolean verify(String s, SSLSession sslSession)

                //未真正校检服务器端证书域名

                return true;

           

        ;

        return hostnameVerifier;

   

public OkHttpClient getOkHttpClient()

        if (mOkHttpClient == null)

            mOkHttpClient = new OkHttpClient.Builder()

                    .connectTimeout(15, TimeUnit.SECONDS)

                    .sslSocketFactory(new SSLSocketClient().getSSLSocketFactory())//配置

                    .hostnameVerifier(new SSLSocketClient().getHostnameVerifier())//配置

                    // .readTimeout(10, TimeUnit.SECONDS)

                    .build();

       

        return mOkHttpClient;

   

原文链接: android https请求证书处理

Android 的OkHttp(发送网络请求)

今天讲的是和HttpURLConnection差不多的OkHttp;

先把网站献上:

  官网介绍okhttp的:

  https://square.github.io/okhttp/

  下载postman的:

  https://www.postman.com/downloads/

  

想要写OkHttp的就得配置

先上配置代码,首先在manifest里面配置网络

前面说过就不讲了:

<uses-permission android:name="android.permission.INTERNET" />
android:usesCleartextTraffic="true"写在application里

然后就是在Build.gradle里面配置:切记是app模块,不要放到项目模块去了,好像是每个项目都得下载(本人是这样认为的)反正就是不要把下面的语句写到项目模块

 

 

 

 

这个在官网有,而且会持续更新,我复制的这个当牛牛看到的时候指不定也过时了
implementation("com.squareup.okhttp3:okhttp:4.7.2")

 然后就是自己摸索怎么下载吧,我刚刚一下就过去了,反正是在Build窗口里的提示语句,然后让我导入下载。我刚也是搞半天,以为出毛病了,因为如果不下载okHttp的包就不能用OkHttpClint。

 

配置好了就可以写代码了。我们主要是实现的功能就是在学长的网站上留言,跟贴吧的那种形式差不多,

我们布局文件就写个ListView然后主活动配置下适配器就好。

 

 

注释已打好,源码就不发了,自己打吧,哈哈;

今天的:

 

 这是所有回的帖子,这个代码的思想就是先请求网站上传然后获取信息放到我们的模拟器上。

 

今天的就完成了,至于postman是啥?干啥的:

Postman是chrome的一款插件,用于做接口请求测试,无论是前端,后台还是测试人员,都可以用postman来测试接口,用起来非常方便。

这个就是测试我们与学长搭建的那个网站发送的请求是否成功。

自己摸索下吧!

 

 

 

 

 

以上是关于android okhttp https请求的主要内容,如果未能解决你的问题,请参考以下文章

Android 的OkHttp(发送网络请求)

Android 的OkHttp(发送网络请求)

Android网络请求框架之Okhttp3.0 详细使用

Android网络请求框架之Okhttp3.0 详细使用

Android网络请求框架之Okhttp3.0 详细使用

Android开发学习之OkHttp框架