Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Volley JsonArrayRequest无法将参数发送到服务器_Android_Json_Android Volley - Fatal编程技术网

Android Volley JsonArrayRequest无法将参数发送到服务器

Android Volley JsonArrayRequest无法将参数发送到服务器,android,json,android-volley,Android,Json,Android Volley,我有一个搜索活动。我必须向服务器发送一个参数,如搜索关键字,并接收JsonArray 我将此代码用于JsonArrayRequest: JsonArrayRequest stringRequest = new JsonArrayRequest(Request.Method.POST, url, new Response.Listener<JSONArray>() { @Override public void onRes

我有一个
搜索活动
。我必须向服务器发送一个参数,如搜索关键字,并接收JsonArray

我将此代码用于
JsonArrayRequest

JsonArrayRequest stringRequest = new JsonArrayRequest(Request.Method.POST, url,
        new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                pDialog.dismiss();
                Log.e("response : ",response.toString());
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                pDialog.dismiss();
            }
        }){
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String,String> params = new Hashtable<String, String>();
        params.put("test", "ok");
        return params;
    }
};


AppController.getInstance().addToRequestQueue(stringRequest);
但服务器不会为应用程序发送任何内容

我通过StringRequest对它进行了测试,它工作得很好,但在JsonArrayRequest中它不工作

当我使用JsonArrayRequest时,似乎没有设置参数


请帮助

如果您的项目使用mcxiaoke的库,您将在
JsonArrayRequest.java
文件中找到一个构造函数,如下所示

public JsonArrayRequest(int method, String url, JSONObject jsonRequest,
                        Listener<JSONArray> listener, ErrorListener errorListener) {
    super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener,
            errorListener);
}

如果您的项目使用mcxiaoke的库,您将在
JsonArrayRequest.java
文件中找到一个构造函数,如下所示

public JsonArrayRequest(int method, String url, JSONObject jsonRequest,
                        Listener<JSONArray> listener, ErrorListener errorListener) {
    super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener,
            errorListener);
}

为什么不使用
StringRequest

如果您的响应是
JsonArray
JsonObject
,那么您也可以从
StringResponse
获得它

String response;

JSONArray arrayResponse = new JSONArray(response);

为什么不使用
StringRequest

如果您的响应是
JsonArray
JsonObject
,那么您也可以从
StringResponse
获得它

String response;

JSONArray arrayResponse = new JSONArray(response);

你们可以点击下面的链接,这个链接和你们的问题很相似


您可以点击下面的链接,该链接与您的问题非常相似



请按照答案进行操作,我希望它对你有用。对不起!在此链接中使用了异步任务。这是一个坏主意,我必须使用截击库跟随答案,我希望它能为你工作。对不起!在此链接中使用了异步任务。我下载的jar文件我不知道是mcxiaoke的还是Google的你可以在JsonArrayRequest上按Ctrl-B打开该文件包名是package com.android.volley.toolboxNo,我的意思是你打开该文件来查找我的答案中的构造函数。在我的JsonArrayClass中,我有meny构造函数,我复制了:
publicJSONArrayRequest(字符串url,侦听器侦听器,ErrorListener ErrorListener){super(0,url,(字符串)null,Listener,ErrorListener);}
我下载了我不知道是mcxiaoke还是Google的库的jar文件。你可以在JsonArrayRequest上按Ctrl-B打开该文件。文件包名是package com.android.volley.toolboxNo,我的意思是你打开该文件以查找我的答案中的构造函数。在我的JsonArrayClass中,我有meny构造函数,我复制了:
publicjsonarrayrequest(stringurl,Listener-Listener,ErrorListener-ErrorListener){super(0,url,(String)null,Listener,ErrorListener);}
因为它返回一个字符串值,但我需要JsonArray@AbbasNikzad我更新了我的答案我会测试的,等等。我会回来给出结果的!当我使用stringrequest时,我得到一个错误:响应是数组。如何修复它?@zeynab farzaneh你的错误是什么?为了得到更好的答案,把它当作一个新问题,因为它返回一个字符串值,但我需要JsonArray@AbbasNikzad我更新了我的答案我会测试的,等等。我会回来给出结果的!当我使用stringrequest时,我得到一个错误:响应是数组。如何修复它?@zeynab farzaneh你的错误是什么?为了得到更好的答案,把它当作一个新问题