如何在Retrofit 2中处理POST请求响应?

我试图将appVersiondeviceName作为String发送到服务器,并获取systemDatetoken为字符串作为响应。

这是我在Kotlin的POJO:

 class InitPost { @SerializedName("appVersion") @Expose var versionName: String? = null @SerializedName("deviceName") @Expose var manufacturer: String? = null } 

Api服务:

 @POST("getRequest") Call postInit(@Body InitPost initPost); 

在我的活动中:

 apiService.postInit(initPost) .enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if(response.isSuccessful()){ Timber.d("INIT POST SUCCESSFUL"); } } @Override public void onFailure(Call call, Throwable t) { Timber.e("INIT POST UNSUCCESSFUL %s", t.getMessage()); } }); 

这是完美的,直到这一部分,我所能做的就是显示response.body().toString() ,我怎样才能得到字符串systemDate和字符串令牌作为响应,并将其保存在我的应用程序? 我用POSTMAN试了一下,回复没有问题,我只是不知道该怎么弄

2 Solutions collect form web for “如何在Retrofit 2中处理POST请求响应?”

你的回应POJO应该包含你所期待的所有领域

 class InitPost { @SerializedName("appVersion") @Expose var versionName: String? = null @SerializedName("deviceName") @Expose var manufacturer: String? = null @SerializedName("systemDate") @Expose var systemDate: String? = null @SerializedName("token") @Expose var token: String? = null } 

创建一个包含字段的DTO。

  @SerializedName("systemDate") @Expose val systemDate: String? = null @SerializedName("token") @Expose val token: String? = null 

然后将您的Call通用types从Call更改为Call< NewPOJO > 。 在你的onResponse回调中使用response.body() ,你将得到NewPOJO对象

Kotlin language will be the best programming language for Android.