You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置size参数后NewsData.io API仍返回有限结果的技术问询

解决NewsData.io API返回结果少于设置size的问题

核心原因

你的响应里totalResults为12,这说明当前查询条件(country=in)下,API实际可用的新闻总数就是12条。NewsData.io的size参数是单次请求最多返回的条数,但不能超过实际存在的结果总数,所以哪怕设置size=50,也只能返回现有全部的12条内容。

分页的正确用法(当totalResults大于单次size时)

如果后续你的查询条件下totalResults大于设置的size,就需要通过分页获取剩余结果,NewsData.io支持两种分页方式:

  • 使用page参数:
    比如设置size=20,totalResults=100,可依次请求不同页码:

    • 第1页:https://newsdata.io/api/1/latest?country=in&size=20&page=1&apikey=YOUR_API_KEY
    • 第2页:https://newsdata.io/api/1/latest?country=in&size=20&page=2&apikey=YOUR_API_KEY
    • 以此类推,直到返回结果数不足size,或者页码超过totalResults/size的整数上限。
  • 使用nextPage参数:
    每次请求成功后,响应里会包含nextPage字段(存在下一页时),直接将该值作为参数加入下一次请求即可。比如第一次响应返回"nextPage": "2",下一次请求URL为:
    https://newsdata.io/api/1/latest?country=in&size=20&nextPage=2&apikey=YOUR_API_KEY

其他可能的限制因素

  • API套餐限制:不同付费套餐会限制单次请求的最大size值,以及每日可获取的总结果数。如果你的套餐允许的最大单次size小于50,设置size=50会被API自动降至套餐允许的最大值。
  • 内容时效性与查询范围:/latest端点返回近期新闻,若指定国家(in)的近期新闻数量本身较少,结果自然不多。可尝试用timeframe参数扩大时间范围(比如timeframe=7d获取7天内新闻),或增加多个国家、调整关键词等查询条件来获取更多内容。

优化后的分页请求示例代码

class DownloadNews extends AsyncTask<Integer, Void, String> {

    @Override
    protected String doInBackground(Integer... pageNumbers) {
        String response = "";
        int page = pageNumbers.length > 0 ? pageNumbers[0] : 1;
        String url = "https://newsdata.io/api/1/latest?country=in&size=20&page=" + page + "&apikey=YOUR_API_KEY";
        response = Function.excuteGet(url, "");
        return response;
    }

    @Override
    protected void onPostExecute(final String response) {
        if (response != null && response.length() > 10) {
            Log.d("response", response);
            // 解析响应判断是否需要继续请求下一页
            try {
                JSONObject jsonResponse = new JSONObject(response);
                String nextPage = jsonResponse.optString("nextPage", null);
                if (nextPage != null) {
                    new DownloadNews().execute(Integer.parseInt(nextPage));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}

使用说明

  1. 首次调用执行new DownloadNews().execute(1);获取第一页内容
  2. 在onPostExecute中解析nextPage字段,若存在则继续请求下一页,直到nextPage为null

内容的提问来源于stack exchange,提问作者Vikash K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 15:32:42