android - 有没有办法调试凌空 JSONArray 请求不起作用?
问题描述
我是 android 开发新手,无法调试此错误。从凌空java代码
private void loadPending() {
RequestQueue queue= Volley.newRequestQueue(getApplicationContext());
int type = Request.Method.POST;
String url = "http://budgetcalc.tk/api/dailybudget/pending_list.php";
JsonArrayRequest request = new JsonArrayRequest(type, url,null,
new Response.Listener<JSONArray>(){
@Override
public void onResponse(JSONArray response) {
setPendingList(response);
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Toast.makeText(getApplicationContext(), "Error "+error.getMessage(), Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
params.put("userName",userName);
return params;
}
};
queue.add(request);
}
private void setPendingList(JSONArray response) {
List<HashMap<String,String>> list=new ArrayList<>();
Toast.makeText(this, "came to setPending", Toast.LENGTH_SHORT).show();
for (int i=0;i<response.length();i++){
try {
JSONObject obj=response.getJSONObject(i);
HashMap<String,String> map= new HashMap<String,String>();
map.put("id",obj.getString("id"));
map.put("item_name",obj.getString("item_name"));
map.put("item_amount",obj.getString("item_amount"));
map.put("item_type",obj.getString("itme_type"));
list.add(map);
} catch (JSONException e) {
e.printStackTrace();
}
}
//1. Layout File
int layout = R.layout.today_done_list_layout;
//2. View List
int[] views = {R.id.today_pending_list_item_name, R.id.today_pending_list_item_amount,R.id.today_pending_list_item_type,R.id.id };
//3. Column List
String[] cols = {"item_name", "item_amount","item_type","id"};
//4. Create Simple Adapter
SimpleAdapter adapter = new SimpleAdapter(this, list, layout, cols, views);
ListView lv = findViewById(R.id.today_pending_list);
lv.setAdapter(adapter);
}
从服务器端使用 post userName 值并返回 JSONarray,当我使用 POSTMAN 检查带有我的用户名的 url 时,它给出
[{"id":"9","item_name":"pen","item_amount":"1","itme_type":"Income"},{"id":"11","item_name":"pen\n\n","item_amount":"1","itme_type":"Income"}]
但是我从 logcat 得到一个错误
org.json.jsonexception 在 volley 的字符 0 处输入结束
当我使用这个凌空请求时,我认为 userName 参数不会发送到服务器
解决方案
推荐阅读
- jenkins - 如果配置代理花费的时间太长,是否可以配置 Jenkins 以使工作失败?
- graphics - 以自定义速度沿曲线移动对象
- java - 将原生查询结果投影到 DTO
- javascript - React JS 编译但不在页面上显示内容
- javascript - 在哪里放置功能组件的辅助功能?什么是最好的性能?
- laravel - 在我的操作表单中添加参数时错误变量未定义
- vue.js - Handlebars VueJS 转义 img src
- arrays - 使用 lodash 过滤嵌套数组中的项目
- c# - Regex.Replace 将 NONE 放在逗号之间并删除最后的多个逗号
- javascript - 使用 ESLint 在模板字符串上出现解析错误,但我在配置文件中有 ECMA 6