寫在前面:前幾天做項目用到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愣是一直沒看到,還是得走走❤吶!菜鳥的路還很長很長……..
給一個鳥人加個這個:一知半解的小站