【发布时间】:2019-11-20 17:49:02
【问题描述】:
我有一个使用 POST 方法的 volley StringRequest,请求能够连接到设备和模拟器中的服务器,但是,请求需要以正确的顺序提供参数才能工作,并且由于某种原因,模拟器会按顺序发送这些参数,但设备不会。
这是为什么?有什么办法可以避免这种情况吗?
我的字符串请求:
StringRequest xx = new StringRequest(Request.Method.POST, getAjaxUrlForFunction("Login"), new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.w("RESPONSE-=",response);
callback.onSucces(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
callback.onError(error);
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> paramss = new HashMap<String, String>();
paramss.put("funcion","login");
paramss.put("ajax_request","controller");
paramss.put("args[0]", name);
paramss.put("args[1]", password);
return paramss;
}
};
【问题讨论】:
-
HashMap不保持插入顺序,所以不知道为什么你会期望这么多;但是,LinkedHashMap 可以:stackoverflow.com/a/10710205/2711811. -
@Andy 我明白了,我不知道这一点,但是,我认为我不能在凌空请求中使用 LinkedHashMap 作为参数,可以吗?
-
它扩展了
HashMap,所以我不明白为什么不这样做。 -
我刚刚意识到,感谢您的快速回复,如果您愿意,可以将其发布为答案。
-
试一试,如果它有效,请将您的代码作为解决方案发布 - 将成为一个很好的未来参考。
标签: android httprequest android-volley