Hello! 欢迎来到小浪资源网!

API返回空值且requests库无报错,如何排查故障?


API返回空值且requests库无报错,如何排查故障?

无法获取 api 返回数据的排除故障

根据提供的代码,我们尝试分析导致无法获得 api 返回数据的可能原因。

问题复现

原代码尝试通过 post 请求获取 ip 查询 api 的返回数据,但遇到以下问题:

  • api 返回空值。
  • requests 库没有报错。

原因分析

经过仔细检查,我们发现原始代码中存在一个拼写错误:

fields=58898?lang=zh_cn"  # 拼写错误

正确拼写应该是:

fields=58898&lang=zh_cn"

修改后的代码

以下是修改后的代码:

import random import requests import json  ip = [     "49.104.25.257",     "39.115.131.116" ]  api = "http://ip-api.com/batch?fields=58898&lang=zh_CN"  # 更正拼写 headers = {     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",     "content-type": "application/json" }  ip = json.dumps(ip, ensure_ascii=False, indent=2) print(ip)  resp = requests.post(url=api, data=ip, headers=headers) print(resp.status_code) print(resp.text)  resp.close()

效果验证

运行修改后的代码后,api 返回数据将能够成功获取。

相关阅读