retrofit和okhttp请求url的参数拼接

Posted

tags:

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

参考技术A 题:在此默认各位看官对Retrofit、以及Okhttp已经有过一定的了解及应用,所以今天我们不谈基础入门的东西,今天我们谈在Retrofit请求接口管理类中URL参数含有动态参数的处理方式。一般我们使用Retrofit大部分场景中URL都是以注解的方式静态声明的,即URL及path路径都是固定不变,可变部分作为方法的参数传入,那有一些特殊情况会要求我们再使用@GET()、或者@POST()的时候URL路径里含有可变参数,需要动态处理,下面通过例子我逐个为大家分析讲解。

2.) url中含有参数

3.)可变参数在URL的问号之后

4.) 问号后面有多个参数 :

5.)问号后面有多个参数,且参数个数不定

2.POST请求

2.) url中含有可变参数、问号之后需要加入token,post的数据只有一个type

3.) url中含有可变参数、问号之后需要加入token,post的数据为一个对象(json串)

以上内容 转自: https://blog.csdn.net/xieluoxixi/article/details/80092582

另外还有几点

Retrofit2.0+OkHttp打印Request URL(请求地址参数)

学习了Retrofit中的拦截器功能:实现日志中打印请求头内容

 

Retrofit 2+ 是基于OKHttp进行封装的,那么也就是说想进行请求拦截然后进行打印出来的话,就必须要从OkHttp进行入手。

1,添加依赖包:

compile \'com.squareup.okhttp3:logging-interceptor:3.1.2\'

 

2,我这里是新建了一个方法进行创建并获取OkHttp

private OkHttpClient getOkHttpClient() {
        //日志显示级别
        HttpLoggingInterceptor.Level level= HttpLoggingInterceptor.Level.BODY;
        //新建log拦截器
        HttpLoggingInterceptor loggingInterceptor=new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
            @Override
            public void log(String message) {
                Log.d("zcb","OkHttp====Message:"+message);
            }
        });
        loggingInterceptor.setLevel(level);

        //定制OkHttp
        OkHttpClient.Builder httpClientBuilder = new OkHttpClient
                .Builder();
        //OkHttp进行添加拦截器loggingInterceptor
        httpClientBuilder.addInterceptor(loggingInterceptor);
        return httpClientBuilder.build();
    }
View Code

3,把获取到的OkHttp给Retrofit进行使用

Retrofit retrofit=new Retrofit.Builder()
                .baseUrl(AppConfig.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(getOkHttpClient())//使用自己创建的OkHttp
                .build();

 

 效果图:我发起了三个请求。

 

 

参考资料:

OKHttp源码解析

OkHttp源码:Logging Interceptor

学会Retrofit+OkHttp+RxAndroid三剑客的使用,让自己紧跟Android潮流的步伐

 

以上是关于retrofit和okhttp请求url的参数拼接的主要内容,如果未能解决你的问题,请参考以下文章

Retrofit2.0+OkHttp打印Request URL(请求地址参数)

Retrofit2.0+OkHttp打印Request URL(请求地址参数)

OkHTTP、Retrofit 中文乱码解决方法

关于Retrofit2+Okhttp3实现统一添加请求参数和重定向

Retrofit+OkHttp 参数使用AES加密Demo

带你一步步剖析Retrofit 源码解析:一款基于 OkHttp 实现的网络请求框架