【问题标题】:Why is an error occurring after hosting a JSON Object Request?为什么托管 JSON 对象请求后会出现错误?
【发布时间】:2021-04-28 23:22:35
【问题描述】:

我通过以下代码托管一个非常简单的 JSON 对象请求:

public class MainActivity extends AppCompatActivity {

    RequestQueue queue;
    String url = "https://www.google.com";
    String apiUrl = "https://jsonplaceholder.typicode.com/todos";
    String getApiUrl = "https://jsonplaceholder.typicode.com/todos/1";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        queue = Volley.newRequestQueue(this);

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
                getApiUrl, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    Log.d("url", "onCreate: " + response.getString("title"));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.d("url", "There was an error");
            }
        });
        queue.add(jsonObjectRequest);



    }

}

这段代码的重点是获取这个 URL 的 JSON 对象中的 title 属性:https://jsonplaceholder.typicode.com/todos/1

在我的 Manifest 中,我包含了对 Internet 的权限,并且在我的 build.gradle 中,包含了 volley 的依赖项。

Logcat 也没有显示任何致命错误。谢谢。

【问题讨论】:

  • 你能不能在 catch (JSONException e) { e.printStackTrace() } 里面放一个 log.d("tag","msg"+e) 。问题可能就在那里

标签: java android json


【解决方案1】:

我检查了您的代码,它运行良好!!!而不是 Log.d() 使用 Log.e() 所以红色的数据对你来说会更明显:)

【讨论】:

  • 怎么样?我再次运行它,这次 log.e 仍然出现同样的错误。它打印出错误消息“出现错误”。所以它似乎进入了onErrorResponse。我将在我的帖子中包含一张图片。您在复制代码之前是否添加了任何权限或做过的事情(互联网权限/依赖项除外)?谢谢。
  • 代码Log.d("url", "There was an error"); 比无用更糟糕!您需要知道错误消息本身,理想情况下,还需要知道堆栈回溯。问:VolleyError error 是否包含您要打印的有用信息?
【解决方案2】:

更新:

我已经找到了解决问题的方法。问题是我的 build.gradle 中的 min sdk 版本为 30,编译时为 30,而我的模拟器的 API 级别为 29。

【讨论】:

  • OMG 在这个解决方案上,即使是谷歌开发人员也无法帮助你....大声笑..因为这是你的内部问题,没有人熟悉它。
猜你喜欢
  • 2014-03-18
  • 2016-01-25
  • 2016-04-08
  • 2015-06-01
  • 2018-08-14
  • 2016-10-19
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
相关资源
最近更新 更多