希望连接到Gooddata API并通过python中的API导出报告。 The documentation有点令人困惑。
我已经定义了我的gooddata实例的登录名:
from urllib2 import Request, urlopen
import json
import requests
def login_gooddata(my_email, my_password):
url = 'https://secure.gooddata.com/gdc/account/login'
values = {
"postUserLogin": {
"login": my_email,
"password": my_password,
"remember": 0,
"verify_level": 0
}
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
encoded_values = json.dumps(values)
#request = Request(url, data=encoded_values, headers=headers)
r = requests.post(url, data=encoded_values)
return r
成功登录后,返回200响应。
鉴于gooddata网站提供的有关连接API的文档,我正在尝试导出原始项目文件。
我设置了项目和对象ID:
project_id = 'asibfakuyebkbhdbfaisdf'
object_id = '87234760'
values = {
"report_req": {
"reportDefinition": "/gdc/md/"+ project_id + "/obj/" + object_id
}
}
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
url = 'https://secure.gooddata.com/gdc/app/projects/' + project_id + '/execute/raw/'
r = requests.post(url, data=json.dumps(values), headers=headers)
request = Request(url, data=json.dumps(values), headers=headers)
response_body = urlopen(requests).read()
print response_body
我使用
r = requests.post(url, data=encoded_values
和request = Request(url, data=encoded_values, headers=headers)
玩耍。仍然收到错误。我不确定如何解决下一步问题。遵循文档中所述的有关连接API的指示:
最佳答案
您需要从一个记住登录名中cookie的“会话”中执行所有HTTP请求:执行一次s = requests.Session()
,然后使用s.post
而不是requests.post
。
有关更多信息,请参见https://stackoverflow.com/a/31571805/3407728。