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(); }
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(请求地址参数)