python - 使用 Python 请求模块登录 Robinhood
问题描述
我正在尝试使用以下方法登录 Robinhood API:
import requests
def login():
u = "myusername"
p = "mypassword"
url = "https://api.robinhood.com/api-token-auth/"
r = requests.get(url, username=u, password=p)
#r = requests.get(url)
return r.text
print login()
我有办法在 Curl 中做到这一点:
'curl -v https://api.robinhood.com/api-token-auth/ -H "Accept: application/json" -d "username='+username+'&password='+password+'"'
使用 Python 请求时,我收到以下错误:
Traceback (most recent call last):
File "rhood.py", line 12, in <module>
print login()
File "rhood.py", line 8, in login
r = requests.get(url, username=u, password=p)
File "C:\Python27\Lib\site-packages\requests\api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "C:\Python27\Lib\site-packages\requests\api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
TypeError: request() got an unexpected keyword argument 'username'
解决方案
您需要创建一个字典,其中包含您希望随请求一起发送的参数(参见data
下面的代码)。然后使用json
参数将字典包含在您的请求中。
另请注意,Robinhood API 文档似乎表明需要 POST 请求,而不是 GET 请求。因此,下面的代码使用requests.post(...)
.
import requests
def login():
u = "myusername"
p = "mypassword"
url = "https://api.robinhood.com/api-token-auth/"
data = {"username": u, "password": p}
r = requests.post(url, json=data)
return r.text
print login()
推荐阅读
- python - 如何从参数传递的路径导入 Python 中的模块?
- delphi - 在 Windows 7 上使用 Delphi 2010 时的 IDE 下划线错误
- python - 使用 python 多处理池访问拆分文件,搜索字节流,然后连接值
- ansible - 当wait_for不够时等待服务在ansible中启动
- c# - .NET Core 2 构建在 .NET Core 3.1 中不起作用
- javascript - 使用 beforeProcessing 或 beforeRequest 事件显示消息
- powerbuilder - 如何使用快捷栏和 xplistbar 创建用户访问权限
- javascript - Javascript / TypeScript 订阅中使用 Promise 时的潜在竞争条件
- c# - EF Core 5:使用与 FK 相同的 PK 配置拥有的类型且没有父属性
- jekyll - 仅在第一次运行时调用 Jekyll 生成器插件,而不是在重新生成时调用