在前兩篇中 主要進行的數據加密,其中踩了很多的坑,在此標註出來 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中,結構如圖 編碼
2.@Field 將參數添加到request的body中 這時Body類型爲FormBody類型,其參數Key-Value對映的encodedNames(全部參數的key)-encodedValues(全部參數的value),結構如圖 它和@Part不能同時使用 使用@Field和@POST同時使用,有參數時不要忘記@FormUrlEncoded,沒有參數不要添加加密
3.使用@Part和@Query時 使用@Multipart,不能進行編碼設置(其進行了各類編碼設置,然而並沒管用,哪位大神有解決的方法,但願能夠告訴我一下,謝謝),默認編碼是utf-8,會造成與瀏覽器訪問url 相似的狀況 若是參數中有漢字,那麼會出現亂碼現象,因此儘可能請求中不要放中文,或者文件上傳接口和其餘接口分開來請求(取巧的方式,也算是一種解決方法吧,求更好的解決方式)url