【发布时间】:2019-07-25 03:48:02
【问题描述】:
我正在尝试从 OpenWeatherAPI 获取 JSON 响应,以将当前天气合并到我的应用程序中。我使用 volley 发出一个简单的请求来获取 JSON 响应,但每次都没有得到响应。相反,它总是触发 onErrorResponse 方法。我要进行哪些更改才能完成这项工作?
我已在清单中添加了使用 Internet 权限。
我尝试了从许多来源获取 JSON 响应的解决方案,包括 Android 官方开发者文档、Stack Overflow 的其他问题等,但都失败了。
我首先使用 JSONObjectRequest 而不是 StringRequest,但即使这样也没有为我提供所需的结果。
/*
Create a request queue to fetch the JSONObject response.
*/
RequestQueue queue = Volley.newRequestQueue(Objects.requireNonNull(getContext()));
/*
JSON Object request.
*/
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getContext(), response, Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getContext(), "No JSON", Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
我希望 Toast 显示响应,但 Toast 显示“无 JSON”。
【问题讨论】:
-
尝试打印出错误。
Toast.makeText(getContext(), error.toString, Toast.LENGTH_SHORT).show(); -
它说 URL 错误,但我检查了三次 URL。当我在浏览器中访问该网址时,它会返回 JSON 文本。
-
我得到了答案。我必须添加“https://”。谢谢@JohnJoe
-
使用 Retrofit.. 它的性能比 volley 和更新...
标签: android json android-volley