凌空不调用getParams() [英] Volley not calling getParams()

查看:61
本文介绍了凌空不调用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆