【问题标题】:Android JSON: Unable to get responseAndroid JSON:无法获得响应
【发布时间】: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


【解决方案1】:

在您的网址前添加“https://”。您将在浏览器上收到响应,但在 Android 中不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多