使用改造发布Hashmap

时间:2016-02-20 04:52:58

标签: android web-services retrofit2

我正在尝试使用改造发布HashMap。我知道堆栈溢出中有相同主题的问题,但似乎没有任何帮助我。

这是mt接口

@POST("/" + AppConstants.DIR + "/" + AppConstants.response)
Call<CommonSuccMsgBean> postResponse(@Body HashMap<String,String> hashMap);

这是我的方法调用:

public void postResponse(final Context context, HashMap hashMap) {

    try {
        final ProgressDialog pLoading = new ProgressDialog(this);
        pLoading.show();
        pLoading.setTitle("Loading...");
        Call<CommonSuccMsgBean> call = Utilities.getInstance().initializeWebServiceCall(context).postResponse(hashMap);

        call.enqueue(new Callback<CommonSuccMsgBean>()
        {
            @Override
            public void onResponse(Response<CommonSuccMsgBean> response, Retrofit retrofit) {

                System.out.println("succedded");
                CommonSuccMsgBean succMsgBean = response.body();
                /*if (succMsgBean.getSucc().equals("1")){
                    Toast.makeText(MerchantActivity.this,"success",Toast.LENGTH_SHORT).show();
                }*/

                pLoading.dismiss();

            }

            @Override
            public void onFailure(Throwable t) {
                pLoading.dismiss();
                Toast.makeText(context, t.getLocalizedMessage(), Toast.LENGTH_LONG).show();

            }
        });


    } catch (Exception e) {
        e.printStackTrace();
    }
}

我试着在这里给出答案: How to pass Map<String, String> parameters or object to POST request via Retrofit?

由于hashmap中的字段数量可能会有所不同,所以我不想像...那样使用它。

  public interface SafeUserApi {
@FormUrlEncoded
@POST("/api/userlogin")
void getUserLogin(@Field("client_id")String  id,@Field("client_secret")String  secret,@Field("username")String  uname,@Field("password")String  password, Callback<LoginResult> cb);

}

当我使用 POSTMAN 进行检查时,网络服务工作正常,但是当我从我的应用程序调用它时,它会提供一些页面来源作为回复。
那么有什么方法可以将整个hashmap作为一个整体传递出去?我做错了什么? 谢谢:))

0 个答案:

没有答案