首页 文章

使用volley库,无法使用参数执行post方法表单

提问于
浏览
-1

我在排球图书馆工作:http://developer.android.com/training/volley/index.html

获取和'发布没有参数的方法'正常工作 . 但是当给出参数时,volley不执行表单,并且表单本身就像jsonObject:

com.android.volley.ParseError:org.json.JSONException:类型java.lang.String的值Login <无法转换为JSONObject

我试过两个重写getParams()方法:

@Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("username", username);
            params.put("password", password);
            return params;
        }

并使用参数实例化对象:

Map<String, String> params2 = new HashMap<String, String>();
    params2.put("username", username);
    params2.put("password", password);

    JsonObjectRequest jsonObjectRequest1 = new JsonObjectRequest(Request.Method.POST, LOGIN_URL, new JSONObject(params2), new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            //onResponse
        }
    });

他们都没有工作 . 我猜我的问题是关于内容类型 . Volley库使用application / json,而我的php代码使用名称 - 值对 .

我看过这两个问题,但遗憾的是他们没有解决我的问题:

Google Volley ignores POST-Parameter

Volley Post JsonObjectRequest ignoring parameters while using getHeader and getParams

1 回答

  • 0

    当您使用 JsonObjectRequest 时,您说您发布的内容是 JSON Object ,您期望的回复也将是 JSONObject . 如果这些都不是真的,您需要构建自己的 Request<T> 并设置所需的值 .

    您看到的错误是因为来自服务器的响应不是有效的JSON响应 .

相关问题