使用Python Requests调用TomTom API获取历史事件数据遇596错误
解决TomTom历史事件API返回596错误的方法
核心修复步骤
修正请求方法与参数传递方式:你代码注释写了要发POST请求,但实际用了
requests.get(),TomTom的历史事件详情API要求必须用POST方法。同时要把bbox、date、time、fields这些参数放到JSON请求体里,而非URL参数中。改完的代码参考:import requests url = "https://api.tomtom.com/traffic/services/1/history/incidentDetails" # 密钥保留在URL参数中,其他参数放入请求体 params = {"key": "你的API密钥"} payload = { "bbox": "-73.9345 40.71481 -73.95557 40.70115", "date": "2023-05-25", "time": "14:00:00", "fields": "{incidents{geometry{type,coordinates},properties{iconCategory,startTime,endTime,length}}}" } # 发送POST请求,指定JSON格式传递请求体 response = requests.post(url, params=params, json=payload) print(response) # 打印响应内容查看具体错误描述 print(response.text)验证API密钥权限:确认你的密钥未过期,且账号已开通历史交通事件数据的访问权限,权限不足会直接触发596错误。
核对参数有效性:
bbox需严格遵循最小经度 最小纬度 最大经度 最大纬度的顺序,当前坐标格式没问题,但可再确认范围是否合理;date和time格式符合要求,但要确保该时间点确实存在可查询的历史事件数据,空数据也可能返回异常状态码。
调试技巧
直接打印response.text,TomTom的错误响应会包含具体问题描述,比如参数格式错误、权限缺失等,能帮你快速定位问题。
内容的提问来源于stack exchange,提问作者Bashar Moalla
相关产品推荐
相关产品推荐

