java - 如何使用retrofit 2在android中的数组中发布数据

标签 java android retrofit retrofit2

我面临着使用 Retrofit 2 在 android 中的数组中发布数据的问题。我必须在我的个人资料设置 Activity 中发布近 14 个字段的数据... 像这样...

name="basics[first_name] , name="basics[last_name]" , name="basics[phone_number]"

我必须以这种格式发送数据。我不明白如何做到这一点需要帮助。我不明白如何在界面中调用 api,因为我必须将数据放入数组中。 目前我正在这样做,但我知道这是不对的......

@FormUrlEncoded
    @POST("profile_setting/basic_setting")
    Call<ResponseBody> UpdateBasics(
            @Query("user_id") int user_id ,
            @Field("nickname") String nickname ,
            @Field("first_name") String  first_name ,
            @Field("last_name") String last_name ,
            @Field("phone_number") String phone_number ,
            @Field("fax") String fax
    );

最佳答案

开设类(class)

public class Basic {
  public final int user_id;
  public final String nickname;
  ....

  public Basic(int user_id, ...) {

  }
}

然后将此类的对象列表传递给此接口(interface)

public interface MyService {
  @POST("/basic")
  Response void sendData(@Body List<Basic> basic);
}

或者您可以对 JSONObject 执行相同的操作。只需制作一个 jsonobjects 列表

JSONObject paramObject = new JSONObject();
                    paramObject.put(value_one, "field_one"));
                    paramObject.put(value_second, "field_second"));

将对象放入列表

list.add(paramObject);

然后传递到改造

public interface MyService {
  @POST("/basic")
  Response void sendJsonObjectData(@Body List<JSONObject> basic);
}

关于java - 如何使用retrofit 2在android中的数组中发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53424919/

相关文章:

java - openPrefetchingReadChannel 在 Google 云存储客户端 API 中不起作用

java - Android 联系人列表选择器

android - 如何订阅点击事件以便异常情况不会取消订阅?

Android Retrofit 2 简单 XML 转换器

android - 访问改造服务器请求和响应时间 Android

java - 模拟@AuthenticationPrincipal 参数

java - SWT Modal ProgressBar 松散窗口焦点

Java 线程 : ExecutorService delay between threads

javascript - 无法从 iframe 访问浏览器平板电脑(Firefox 除外)中的父级 javascript

Android改造转换器异常