android - Volley 不调用 getParams()

标签 android android-volley

我正在尝试使用 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);

最佳答案

如果服务器读取的是键值对,那么使用这个

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

关于android - Volley 不调用 getParams(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35553899/

相关文章:

android - 如何修复截击测试编译

java - Android 类 JsonRequest 和子类 JsonRequestArray 和 JsonRequestObject

java - 如果服务器上的json数据发生变化,如何更新?

android - 如果没有 react-native,是否可以在 Android 和/或 iOS 的后台任务中收集地理位置信息?

android - Parse.com 相当于 Group By

android - 移动应用程序必须进行多少处理?

android - Android POST 请求收到空响应

java - 为什么我的运行配置在 Android Studio 中被禁用?

java - 检测 SurfaceView 上绘制的 View 的触摸

php - 意外的响应代码 503 (Android Studio)