首页 > 解决方案 > Retrofit2 使用 Hashmap 发布和获取 Json 数组数据

问题描述

我已经在 Retrofit2 中编写了下面的代码,以基于已发布的数据发布和检索数据。它工作得很好,但有时它会在发布和接收时造成一些延迟,哈希图可以让它更快一些。如何使用 hashmap 来发布和检索数据。不知道

下面是我的 API 接口

@FormUrlEncoded // annotation used in POST type requests
@POST("/myhippo.php")
    // API's endpoints


Call<SignUpResponse> registration(@Field("umobile") String umobile,
                                        @Field("pickup_lat") String pickup_lat,
                                        @Field("pickup_lan") String pickup_lan,
                                        @Field("drp_lat") String drp_lat,
                                        @Field("drp_lan") String drp_lan,         
                                  );

在下面我发布数据并接收响应

Api.getClient().registration(umobile,pck_lat,pck_lan,drp_lat,drp_lan).enqueue(new Callback<SignUpResponse>() {

  @Override
  public void onResponse(Call<SignUpResponse> call, Response<SignUpResponse> response) {

    log.e(response.body().getUmobile());)
  }

这是我的 SignUpResponse.java

private String pickup_lan;
private String drp_lat;
private String drp_lan;

public String getPickup_lat() {
    return pickup_lat;
}

public void setPickup_lat(String pickup_lat) {
    this.pickup_lat = pickup_lat;
}

public String getPickup_lan() {
    return pickup_lan;
}

public void setPickup_lan(String pickup_lan) {
    this.pickup_lan = pickup_lan;
}

public String getDrp_lat() {
    return drp_lat;
}

public void setDrp_lat(String drp_lat) {
    this.drp_lat = drp_lat;
}

public String getDrp_lan() {
    return drp_lan;
}

public void setDrp_lan(String drp_lan) {
    this.drp_lan = drp_lan;
}

这是我的 Api

public class Api {

private static Retrofit retrofit = null;
public static ApiInterface2 getClient() {

    // change your base URL
    if (retrofit==null) {
        retrofit = new Retrofit.Builder()
                .baseUrl("http://baseurl.website/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    //Creating object for our interface
    ApiInterface api = retrofit.create(ApiInterface.class);
    return api; // return the APIInterface object
}

}

标签: androidretrofit2

解决方案


我不认为它可以帮助提高速度,但这是将数据作为地图发送的方式

Call<SignUpResponse> registration(@FieldMap Map<String,String> map);

像这样收集数据

Map<String, String> map = new HashMap<>();
    map.put("pickup_lat","8512397");
    .
    .
    .

推荐阅读