我正在尝试使用改造发布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作为一个整体传递出去?我做错了什么?
谢谢:))