在前兩篇中 主要進行的資料加密,其中踩了不少的坑,在此标注出來 1.當請求中的參數有普通參數和上傳檔案的類型是 請求的注解是@Mutipart
@POST(Url)
@Multipart
Observable<Model> updateFile(@Query("id") String id , @Part List<MultipartBody.Part> files);
參數混合使用分别是@Query和@Part類型 @Query 是将參數直接拼接到url後面 @Part 會将參數添加到request的body中 這時Body類型為MultipartBody類型,參數存放在parts 中,key-value分别是Part在header和body中,結構如圖

[email protected] 将參數添加到request的body中 這時Body類型為FormBody類型,其參數Key-Value對映的encodedNames(所有參數的key)-encodedValues(所有參數的value),結構如圖
它和@Part不能同時使用 使用@Field和@POST同時使用,有參數時不要忘記@FormUrlEncoded,沒有參數不要添加
3.使用@Part和@Query時 使用@Multipart,不能進行編碼設定(其進行了各種編碼設定,然而并沒管用,哪位大神有解決的方法,希望可以告訴我一下,謝謝),預設編碼是utf-8,會形成與浏覽器通路url 類似的情況 如果參數中有漢字,那麼會出現亂碼現象,是以盡量請求中不要放中文,或者檔案上傳接口和其他接口分開來請求(取巧的方式,也算是一種解決方法吧,求更好的解決方式)
版權聲明:本文為CSDN部落客「weixin_33774615」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_33774615/article/details/92304997