package Ġcom . k yle . network . factory Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Type Adapter Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . RequestBody Ċ import Ġok io . Buffer Ċ import Ġretrofit 2 . Converter Ċ import Ġjava . io . IOException Ċ import Ġjava . io . OutputStream Writer Ċ import Ġjava . nio . charset . Charset Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ: Ġk yle Ċ Ġ* Ġe - mail Ġ: Ġ 1 2 3 9 8 7 8 6 8 2 @ qq . com Ċ Ġ* Ġ@ date ĠĠ Ġ: Ġ 2 0 1 9 / 4 / 2 3 Ġ 1 8 : 0 5 Ċ Ġ* Ġ çľĭ äºĨ æĪĳçļĦ ä»£çłģ ï¼Į æĦŁ åĬ¨ äºĨ åĲĹ ? Ċ Ġ*/ Ċ class ĠCommon Request Converter < T > Ġinternal Ġconstructor ( private Ġval Ġgson : ĠGson , Ġprivate Ġval Ġadapter : ĠType Adapter < T >) Ġ: ĠConverter < T , ĠRequest Body > Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġconvert ( value : ĠT ): ĠRequest Body ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠBuffer () ĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠOutputStream Writer ( buffer . output Stream (), ĠUTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġjson Writer Ġ= Ġgson . new Json Writer ( writer ) ĊĠĠĠĠĠĠĠ Ġadapter . write ( json Writer , Ġvalue ) ĊĠĠĠĠĠĠĠ Ġjson Writer . close () ĊĠĠĠĠĠĠĠ Ġreturn ĠRequest Body . create ( MEDIA _ TYPE , Ġbuffer . read ByteString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠMED IA _ TYPE Ġ= ĠMediaType . parse (" application / json ; Ġcharset = UTF - 8 ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠUTF _ 8 Ġ= ĠCharset . forName (" UTF - 8 ") ĊĠĠĠ Ġ} Ċ } Ċ