首页 > 解决方案 > 尝试使用 glide 和 volley 从 URL 获取图像,得到错误 onResponse 方法

问题描述

代码如下,这给了我一个onResponse方法错误:

RequestQueue queue = Volley.newRequestQueue(this);
// Url for the API call
String url = "https://meme-api.herokuapp.com/gimme";

// Request a string response from the provided URL.
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {

        String url = response.toString();

        ImageView imageView = (ImageView) findViewById(R.id.MemeImageView);

        Glide.with(this).load(url).into(imageView);
    }
}, new Response.ErrorListener()

标签: androidandroid-volleyandroid-glide

解决方案


您可以在不将其保存到新字符串的情况下执行此操作。只需首先检查响应是否为空,以及响应是否包含“url”属性,然后在您的情况下直接在 imageview 中使用 response.getString("url") 。

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
        (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
             if(response!=null && response.getString("url")!null){
Glide.with(this).load(response.getString("url")).into(findViewById(R.id.MemeImageView));
}
            }
        }, new Response.ErrorListener() ....

推荐阅读