【问题标题】:Volley not calling getParams()Volley 没有调用 getParams()
【发布时间】:2016-02-22 12:36:57
【问题描述】:

我正在尝试使用 Android 中的 Volley 将一些参数发布到我的 Rails API。这是代码:

对于 Request.Method,我尝试了 POST/GET/PUT,但没有任何效果。

我尝试在 getParams() 中调用日志语句,它已被记录,但参数未添加到 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);

【问题讨论】:

  • POST 请求不将其参数附加到 URL
  • @OctavianoPutra 看到我的编辑仍然无法正常工作
  • @vovaxo 这是另一个问题,并没有解决它
  • Volley not calling getParams()。请更改您的主题,因为它们是您自己看到的。

标签: android android-volley


【解决方案1】:

如果服务器读取为键值对,则使用此

    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() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多