我想在我的Android应用中从网址获取一些数据。我正在使用凌空库来获取/发布请求。以下是获取网址内容的代码:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( Request.Method.GET, R.string.login, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
startActivity(intent);
finish();
} catch (JSONException e) {
e.printStackTrace();
Log.e("ex","Exception Caught! "+e);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonObjectRequest);
但是我在JSONException中遇到以下错误:
异常org.json.JSONexception永远不会在相应的try块
中抛出
答案 0 :(得分:3)
org.json.JSONexception
。您的try
块没有JSON操作,因此永远不会抛出此错误。
将org.json.JSONexception
更改为java.lang.Exception
或完全删除try-catch
块。
try {
Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
startActivity(intent);
finish();
} catch (Exception e) {
e.printStackTrace();
Log.e("ex","Exception Caught! "+e);
}
答案 1 :(得分:1)
由于您使用了JsonObjectRequest
,因此不需要通常在StringRequest
中看到的try-catch,您可以手动将String转换为JSONObject。
如果JsonObjectRequest
中存在JSON解析错误,那么您可以在onErrorResponse