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

如何编写API请求查询字符串,解决WeatherAPI城市查询报错及获取城市列表问题

问题1:如何正确将城市参数放入查询字符串

你遇到的错误码1006是API的官方错误定义,代表传入的位置查询参数无匹配结果,结合你city变量为undefined的情况,按以下步骤修复即可:

  • 先增加入参合法性校验,避免空参数调用API,同时对城市名做URL编码,解决中文/特殊字符导致的URL解析错误:
    修改后代码如下:
    export default async function handler(req, res) {
      const city = req.query.city;
      // 新增非空校验,无城市参数直接返回错误
      if (!city || typeof city !== 'string' || city.trim() === '') {
        return res.status(400).json({ error: "请传入有效的城市参数" });
      }
      // 对城市名做URL编码,避免中文、空格等特殊字符导致的查询异常
      const encodedCity = encodeURIComponent(city.trim());
      const getWeatherData = await fetch(
          `https://api.weatherapi.com/v1/forecast.json?key=${process.env.WEATHER_API_KEY}&q=${encodedCity}&days=5&aqi=no&alerts=no`
      );
      const data = await getWeatherData.json();
      res.status(200).json(data);
    }
    
  • 调用该接口时必须携带合法的city查询参数,例如请求路径格式为/你的接口路径?city=上海,确保传入的城市名拼写正确,该API同时支持中文名、拼音名、经纬度、邮编作为查询参数。

问题2:该API是否支持获取全量城市列表

该API不提供全量城市列表的查询接口,文档中提到的location对象是单次位置查询的返回字段,仅返回当前查询位置的相关信息。如果需要实现城市选择功能,你可以自行整理常用城市列表供用户选择,选中后再传入对应参数调用天气查询接口即可。

内容的提问来源于stack exchange,提问作者Katharina Schreiber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:30:04