gpt4 book ai didi

Android volley,如何动态传递post参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:02 28 4
gpt4 key购买 nike

我是 google 的 Volley 网络库(也是 Android !)的新手,我正在尝试以动态方式传递 POST 参数!

现在我正在覆盖 : getParams() 方法:并以硬编码方式返回参数。

@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("login", "my_login");
params.put("password", "my_password");
return params;
}

我想传递变量而不是“硬编码”字符串...

首先我尝试将我的 Map of params 作为我的类的成员,但是类成员在 getParams() 方法中不可用。

也许我可以使用单例类来提供我想要传递的参数,并在 getParams() 方法中使用它的实例取回它们?但我认为这不是正确的方式。

下面是我的Volley要求的孔码:

RequestQueue queue = VolleySingleton.getInstance().getRequestQueue();

String url = "https://theUrlToRequest";

StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
JSONObject mainObject = null;
try {
Log.i("app", "Result = " + response);
} catch (JSONException e) {
e.printStackTrace();
}

}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.i("app", "Fail on Login" + error.toString());
}
}
) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("login", "my_login");
params.put("password", "my_password");

return params;
}
};

queue.add(postRequest);

最佳答案

在那种情况下,您可以创建一个 Class extends StringRequest。添加一个 attr 来存储参数并在 getParams() 中返回它;

MyStringRequest extends StringRequest{

private Map params = new HashMap();
public MyStringRequest (Map params,int mehotd,String url,Listener listenr,ErrorListener errorListenr){
super(mehotd,url,listenr,errorListenr)

this.params = params

}
@Override
protected Map<String, String> getParams(){

return params;

}

}

RequestQueue queue = VolleySingleton.getInstance().getRequestQueue();

String url = "https://theUrlToRequest";
Map<String, String> params = new HashMap<String, String>();
params.put("login", "my_login");
params.put("password", "my_password");
MyStringRequest postRequest = new MyStringRequest (params ,Request.Method.POST, url,
new Response.Listener<String>(){
},
new Response.ErrorListener(){
}
);
queue.add(postRequest);

关于Android volley,如何动态传递post参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34746619/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com