格式化JSON与python请求封装的post命令...?URL中的jsonRequest参数
问题描述:
我正在尝试向USGS EarthExplorer库存API提交POST请求。这从简单的登录开始。他们有一个测试页:格式化JSON与python请求封装的post命令...?URL中的jsonRequest参数
https://earthexplorer.usgs.gov/inventory/documentation/test
,让你看到一些格式的例子。对于登录的例子,我能提取提交按钮按下的URL(用户和PW已经改变):
不过,我似乎无法弄清楚如何格式化这个在Python中使用请求库。我向其他人开放,但现在正在使用请求。我曾尝试创建一个字典为:
creds = {"username": "user",
"password": "pw",
"authType": "",
"catalogId": "EE"}
payload = json.dumps(creds)
当我打电话requests.post(url, json=payload)
我告诉我的用户名参数不存在。我也尝试过其他关键字,例如数据和参数。
我注意到在成功URL的参数jsonRequest,所以我试图创造与一个字典里为:
creds2={"jsonRequest": [{"username": "user",
"password": "pw",
"authType": "",
"catalogId": "EE"}]}
但这也不管用。
有什么建议吗?谢谢!
答
您必须发送一个GET请求并使用params
参数在查询字符串中传递creds。
creds = {
"username": "user",
"password": "pw",
"authType": "",
"catalogId": "EE"
}
url = 'https://earthexplorer.usgs.gov/inventory/json/v/1.4.0/login'
r = requests.get(url, params={'jsonRequest':json.dumps(creds)})
print(r.json())
真棒,感谢这工作。我用post命令也试过了,都很好。 – JoeMcG