Retrofit は本体内の json ではないデータを送信します

Retrofit は本体内の json ではないデータを送信します

Jsonデータの後付け転送方法

@POST("robot/send")
  SendTextResponse sendMsg(@Query("access_token") String accessToken, @Body SendTextRequest request);

@Body アノテーションを使用するだけで、Retrofit はシリアル化に FastJson を使用します。

ただし、場合によっては、次のように暗号化されたコンテンツを送信する必要があることがあります。

@Body String request

この方法で送信した場合でも、String 文字列は json に変換されるため、データ エラーが発生します。

解決

import okhttp3.RequestBody;

@POST("openapi/api/xxx")
Response dispatch(@HeaderMap Map<String, String> headerMap, @Body RequestBody request)

発信者:

api.dispatch(headerMap, RequestBody.create(MediaType.get("application/json"), request));

完璧に解決できるんです!

Retrofit にはシリアル化方法がたくさんあり、具体的なソースコードはまだ見ていませんが、身近なパートナーがいる場合は、コメントして指摘することができます。

おすすめ

転載: blog.csdn.net/zgz15515397650/article/details/128151185