我希望能对优化当前请求有所帮助。我尝试了许多方法来在 retrofit框架之外做得更好。我想您可能会完全基于改造而使它变得更容易,但Idk会如何。
在邮递员应用程序/ json中的请求如下:
{
"anket": {
"privacy": {
"show_profile": {
"type": "all",
"sub_request": false
}
}
}
}
据我所知,如果您处理字段“类型”和“ sub_request”,则表单数据似乎无法正常工作... @Field 或 @FieldMap可能是同一情况在 retrofit 中也不起作用(或者我做错了c)。
当前实现:
Api.class:
@PATCH("api/v1/users")
Call<Privacy> changeProfilePrivacy(@Query("token") String token,
@Body JsonObject object);
Privacy.class:
@SerializedName("type")
public String type;
@SerializedName("sub_request")
public Boolean subRequest;
private String tokenId = token;
public String getType() {
return type;
}
public Boolean getSubRequest() {
return subRequest;
}
public Privacy privacyProfile(String type, Boolean subRequest) {
JsonObject request = new JsonObject();
JsonObject anket = new JsonObject();
JsonObject privacy = new JsonObject();
JsonObject showProfile = new JsonObject();
showProfile.addProperty("type", type);
showProfile.addProperty("sub_request", subRequest);
privacy.add("show_profile", showProfile);
anketa.add("privacy", privacy);
request.add("anket", anket);
Call<Privacy> call = apiRequest.changeProfilePrivacy(tokenId, request);
callback(call);
return this;
}
JsonObjects具有一些重复部分,例如还有许多其他类似的请求实例。