凌空不调用getParams() [英] Volley not calling getParams()
本文介绍了凌空不调用getParams()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Android中的Volley将一些参数发布到我的Rails API中.这是代码:
I am trying to post some parameters to my rails API using Volley in Android. This is the code:
对于Request.Method,我尝试过POST/GET/PUT,但没有任何效果.
For Request.Method i tried POST/GET/PUT nothing works.
我试图在getParams()中调用一条日志语句,并记录了该语句,但是未将参数添加到URL中.
I tried to call a log statement in the getParams() and it was logged, but the params weren't added to the URL.
StringRequest sr = new StringRequest(Request.Method.GET, Links.URL_login, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
Log.d(TAG, "" + error.getMessage() + "," + error.toString());
}
}){
@Override
protected Map<String,String> getParams(){
Log.d(TAG, "called?");
Map<String, String> params = new HashMap<String, String>();
params.put("email", "daniel");
params.put("pw", "123");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> headers = new HashMap<String, String>();
headers.put("Content-Type","application/x-www-form-urlencoded");
headers.put("abc", "value");
return headers;
}
};
MySingleton.getInstance(getApplicationContext()).addToRequestQueue(sr);
推荐答案
如果服务器将其作为键值对读取,则使用
If server is reading as key-value pair then use this
Uri.Builder builder = Uri.parse(Links.URL_login).buildUpon();
builder.appendQueryParameter("email", "me@email.com");
builder.appendQueryParameter("pw", "mypwd");
String loginUrl=builder.build().toString();
StringRequest sr = new StringRequest(Request.Method.GET, loginUrl......
@vovaxo表示GET请求从不调用getParams()
方法.
And @vovaxo said GET request never call getParams()
method.
这篇关于凌空不调用getParams()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文