我有JsonArrayRequest
。我必须向服务器发送搜索关键字等参数并接收JsonArray。
我将此代码用于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);
:
$keyword= @$_POST["test"];
if($keyword=="ok")
{
echo'
[
{
"name":"name 1 ",
"img":"1.jpg",
"info":"hello",
"id":"eee"
},
{
"name":"name 2",
"img":"2.jpg",
"info":"hello",
"id":"222"
}
]
';
}
服务器PHP文件中的:
from datetime import *
datetime.datetime.fromtimestamp
但是服务器不会为应用程序发送任何内容
我通过StringRequest测试它工作正常,但在JsonArrayRequest中它不起作用
当我使用JsonArrayRequest时,它似乎没有设置参数
请帮助
答案 0 :(得分:1)
如果你的项目使用了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);
}
将此用于您的请求。
如果您的应用使用Google的排球库(而不是JAR文件),则需要将该构造函数添加到JsonArrayRequest.java
文件中,或者您可以尝试使用getBody()
代替getParams()
。< / p>
更新:使用以下示例
...
JSONObject requestBody = new JSONObject();
try {
requestBody.put("key1", "value1");
requestBody.put("key2", "value2");
JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST, url, requestBody, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// do something
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// do something
}
};
// Executes request
requestQueue.add(request);
} catch (JSONException e) {
// do something
}
...
答案 1 :(得分:1)
为什么你不使用StringRequest
?
如果您的回复是JsonArray
或JsonObject
,您也可以从StringResponse
获得回复。
String response;
JSONArray arrayResponse = new JSONArray(response);
答案 2 :(得分:0)
您可以按照以下链接与您的问题非常相似。