首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用Retrofit打印请求日志,过滤改变服务器返回结果,直接获取String字符串直接获取字符串手动解析查看Retrofit请求网络日志自定义Interceptor实现过滤改变请求返回的数据(可使用

Retrofit有一个优点,就是可以自动根据获取到的数据转换成相对应的Bean,它内部提供了一个转换机制,只需要你重写,就能写出自己的转换规则。...这两个,是在从请求Json数据到Bean需要使用到的。...2.7' 直接获取字符串手动解析 除了这种情况,我们经常会因为后台传来的数据的不稳定性,我们需要自己手动去解析字符串,那么就引入了这个 compile 'com.squareup.retrofit2...) //02采用链式结构绑定Base url .addConverterFactory(ScalarsConverterFactory.create())//首先判断是否需要转换成字符串,简单类型 .addConverterFactory...IOException e) { e.printStackTrace(); return null

4.1K20

深入浅出RxJava+Retrofit+OkHttp网络请求

@FormUrlEncoded,即以表单的方式传递参数 @Body:用于Post,根据转换方式将实例对象转化为对应字符串传递参数.比如Retrofit添加GsonConverterFactory则是将body...使用步骤,接下来我们结合RxJava讲述 ReTrofit+Rxjava基本使用 对比之前的Retrofit使用 1.在于我们需要修改service接口返回信息我们需要返回一个Observable对象...需要添加对Rxjava的适配,注意一定要retrofit2才有这个功能哦 Retrofit retrofit = new Retrofit.Builder() .client(builder.build...*/ private boolean cancel; /*是否显示加载框*/ private boolean showProgress; /*是否需要缓存处理*/ private boolean...= null) { mSubscriberOnNextListener.get().onNext(t); } } 主要是是将得到的结果,通过自定义的接口返回给view界面,其中的软引用对象

5.9K10

Retrofit是如何创建的?为什么要用动态代理

OkHttpClient.Builder().cache(cache) .addInterceptor(logInterceptor)//日志拦截器,按照需要添加...Nullable Executor callbackExecutor;//这里是Android的Executor,在主线程执行回调 private boolean validateEagerly;//是否提前创建的标志...public T create(final Class service) { Utils.validateServiceInterface(service);//验证是否传入的为接口类...总结 Retrofit在创建的过程中,有这么一些东西需要我们注意 platform 这个是Retrofit支持的平台,里面有Android和Java8,这里自然是Android callFactory...进行请求和响应的解析,将json字符串转换为具体的实体类 callAdapterFactories 请求和响应的具体处理适配器工厂数组,这里没有传的话默认为ExecutorCallAdapterFactory

2.3K00

Android技能树 — 网络小结(7)之 Retrofit源码详细解析

+ Retrofit ,所以我相关的源码解析都是配合RxJava来的,而不是Call返回对象。...另外一个是Y的类型,也就是里面我们具体写的Bean对象,比如我们直接返回字符串,那可能就是Observable,又或者是自己定义的xxxBean对象,那就是Observable<xxxBean...Response如何转换成Call或者Observable等返回类型,和第3步中的Bean对象拼成了Call《Bean》或者Observable《Bean》 Response如何转换成我们所需要的具体的...= null) { return adapter; } } //'如果所有的CallAdapterFctory都不能使用,就拼接字符串,抛出异常'...因为我们同时传入了我们需要返回的对象的类型传入到了CallAdapterFactory中,你说如果你是默认的ExecutorCallAdapterFactory工厂类,你却传入了Rxjava的返回相关参数

1.3K40

深入浅出 Retrofit,这么牛逼的框架你们还不来看看?

实际上,Retrofit 允许我们自己定义入参和返回的类型,不过,如果这些类型比较特别,我们还需要准备相应的 Converter,也正是因为 Converter 的存在, Retrofit 在入参和返回类型上表现得非常灵活...List,而我们直接拿到的原始返回肯定就是字符串(或者字节流),那么这个返回值类型是怎么来的呢?...首先说明的一点是,GitHub 的这个 api 返回的是 Json 字符串,也就是说,我们需要使用 Json 反序列化得到 List,这其中用到的其实是 GsonResponseBodyConverter...问题来了,如果请求得到的 Json 字符串返回值类型不对应,比如: 接口返回的 Json 字符串: {"err":0, "content":"This is a content....retrofit){ return null; } } } 需要注意的是,Retrofit 类当中也需要增加相应的方法: public

98360

深入浅出 Retrofit,这么牛逼的框架你们还不来看看?

实际上,Retrofit 允许我们自己定义入参和返回的类型,不过,如果这些类型比较特别,我们还需要准备相应的 Converter,也正是因为 Converter 的存在, Retrofit 在入参和返回类型上表现得非常灵活...List,而我们直接拿到的原始返回肯定就是字符串(或者字节流),那么这个返回值类型是怎么来的呢?...首先说明的一点是,GitHub 的这个 api 返回的是 Json 字符串,也就是说,我们需要使用 Json 反序列化得到 List,这其中用到的其实是 GsonResponseBodyConverter...问题来了,如果请求得到的 Json 字符串返回值类型不对应,比如: 接口返回的 Json 字符串: {"err":0, "content":"This is a content....retrofit){ return null; } } } 需要注意的是,Retrofit 类当中也需要增加相应的方法: public

1.7K50

一起来写OKHttp的拦截器

然而 Retrofit 内部请求也是基于 OKHttp 的,所以在做一些自定义修改 HTTP 请求时,需要对 OKHttp 拦截器具有一定了解。...但是需要注意的是,假如现在有十多个 API 接口,每一个都需要传入 token ,难道我们去重复一遍又一遍吗? 相信有良知的程序员都会拒绝,因为这会导致代码的冗余。 那么有没有好的办法可以一劳永逸呢?...", "smsCode":"xxxxxx"} JSON 字符串,然后再将其加密。...最后以 content=[加密后的 JSON 字符串] 方式发送给后台。...还是后台需求,login 接口返回的数据也是经过 AES 加密的。所以需要我们针对所有响应体都做解密处理。 另外,还有很重要的一点,就是数据正常和异常时返回的 JSON 格式不一致。

74420

Retrofit自定义请求参数注解的实现思路

getTransporterInfo(@Query("uid") long id); 我们使用 @Query 注解来声明查询参数,每一个参数都需要用 @Query 注解标记 POST 请求 @POST...: ServiceMethod 中 Builder 的构造函数 Builder(Retrofit retrofit, Method method) { this.retrofit = retrofit...and existing query string, if present. // ... } 可以看到这条方法调用链其实就是确定 httpMethod 的值(请求方式:POST),hasBody(是否含有...ServiceMethod 中的 parseParameterAnnotation 方法新增对 @BodyQuery 的处理分支 RequestBuilder 类,新增 boolean 值 hasBodyQuery,表示是否使用了...body = RequestBody.create(null, new byte[0]); } } 在 hasBodyQuery 的分支,我们会将 bodyQueryMaps 转换为 JSON 字符串然后构造一个

1.9K20

Retrofit解析8之核心解析——ServiceMethod及注解1

; //是否 需要请求体 boolean hasBody; //是否 使用@FormUrlEncoded 注解 boolean isFormEncoded;...2、排除我们不能处理的类型 3、排除无返回值(void)的情况 4、调用 retrofit的callAdapter的方法来获取一个CallAdapter对象,这个里面的内部调用,我们一会再说。...this.httpMethod, httpMethod); } //设置请求方式 this.httpMethod = httpMethod; //根据不同的请求方式来设置是否需要请求体...this.hasBody = hasBody; //如果注解中没有内容,则返回,因为不需要处理 if (value.isEmpty()) { return...this.relativeUrlParamNames = parsePathParameters(value); } 大体流程如下: 1、保证请求方式只设置一次 2、设置请求方式和是否需要请求体

1.9K40
领券