Rextrofit中网络请求空字段传递或过滤

Posted 猫叔聊技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rextrofit中网络请求空字段传递或过滤相关的知识,希望对你有一定的参考价值。

写在前面:前几天做项目用到retrofit来做网络请求,接触这个框架也没多久,就按照网站上的路子走,毕竟农村来的,网上的一些套路…–!,然后就掉坑里了…(ps:我们后台接口需要的参数只能少传递不能多传递,坑)

开始是这样写的:

Gson gson = new GsonBuilder()
            .setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
            .serializeNulls()
            .create();

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(base_host_url)
            .client(httpClient)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io()))
            .build();

这样就导致如果传递对象的话,对象里面的所有字段如果没有赋值的话就会为null并且传递给服务器,我们服务器,咳咳,不给ignore,所以我就找啊找啊,到底什么鬼为什么空字段转成json的时候会有呢,大大大大最后在这了,看这里:

Gson gson = new GsonBuilder()
            .setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
            .serializeNulls()//就是我让那些空字段保留着的!!!!!!
            .create();

那么大的serializeNulls愣是一直没看到,还是得走走❤呐!菜鸟的路还很长很长…

以上是关于Rextrofit中网络请求空字段传递或过滤的主要内容,如果未能解决你的问题,请参考以下文章

Laravel将DB字段设置为空数组

如何在搜索/过滤数据期间处理空字段?

Django:过滤管理模板中的空模型条目

在向服务器发布请求时,我们如何在字典 [String:String] 的参数列表中传递默认空值?斯威夫特3

Sharepoint字段尚未在C#中初始化

视图 1:按自定义表/字段过滤(或使用 Argument Hand.Code)