构造ThinkorSwim (Ameritrade) API GET请求返回Bad request的解决求助
问题解决:TD Ameritrade API 请求报错 "Bad request"
你的代码里有个明显错误:构造的URL末尾多了HTTP/1.1,这是HTTP请求协议的标识,不需要手动添加到URL字符串里。requests.get()方法会自动处理HTTP协议相关的内容,多余的标识会让服务器判定为无效请求,从而返回"Bad request"。
修正后的代码如下:
import requests apiKey = "APIKeyAPIKeyAPIKeyAPIKeyAPIKeyAP" ticker = "TSLA" periodType = "day" period = "10" frequencyType = "minute" frequency = "1" # 去掉末尾的 "HTTP/1.1" apicall = f"https://api.tdameritrade.com/v1/marketdata/{ticker}/pricehistory?apikey={apiKey}&periodType={periodType}&period={period}&frequencyType={frequencyType}&frequency={frequency}&needExtendedHoursData=true" jsonData = requests.get(apicall, headers={'User-agent': 'Chrome/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0'}).json()
另外建议用f-string拼接URL,比加号拼接更清晰易读,也能减少拼接错误。
内容的提问来源于stack exchange,提问作者Leo Torres
相关产品推荐
相关产品推荐

