无法获取 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 返回数据将能够成功获取。