如何授权自己使用 python 的 mulesoft/cloudhub 帐户?
How to Authorize myself to mulesoft/cloudhub account from python?
我必须从 mulesoft/cloudhub 从 python 下载日志。我试过从命令提示符中获取日志并且成功了。我在 CMD 中尝试的是 -
1. curl -d "username=<my_username>&password=<my_password>" https://anypoint.mulesoft.com/accounts/login
2. curl -H "Authorization: Bearer <access token>" -H "X-ANYPNT-ENV-ID: <environment ID>" "https://anypoint.mulesoft.com/cloudhub/api/v2/applications/<domain>/instances/<instance ID>/log-file"
我在 python-
中尝试了以下代码
import http.client
headers = {'X-ANYPNT-ENV-ID': '{env id}'}
conn = http.client.HTTPSConnection('anypoint.mulesoft.com')
conn.request('GET','/cloudhub/api/v2/applications/{domain}/instances/{instanceId}/logs', urlencode(headers))
res = conn.getresponse()
data = res.read()
print(res.status, res.reason)
print(data.decode('utf-8'))
print(res.getheaders())
但是我得到了以下错误-
{"error":"Unauthorized","message":"Failed to create session. You must provide a valid Authorization header"}
我是 mulesoft 的新手,所以如果您能提供详细的回答,我将不胜感激。
谢谢。
Python 脚本缺少第一次调用以获取 API 请求所需的访问令牌。第一个 curl 请求就是为此目的。需要加一个conn.request获取token,提取后在日志请求中添加授权header
经过这么多的尝试,我终于得到了答案。我需要对我的用户名和密码进行编码,然后将其传递,如下所示-
a = bytes('<my_usermame>:<my_password>', 'ascii')
userAndPass = b64encode(a).decode("ascii")
headers = {'Authorization' : 'Basic %s' %userAndPass , 'X-ANYPNT-ENV-ID': '<my_env_id> }
conn = http.client.HTTPSConnection('anypoint.mulesoft.com')
conn.request('GET','/cloudhub/api/v2/applications/{domain}/instances/{instanceId}/logs', headers=headers)
res = conn.getresponse()
data = res.read()
print(res.status, res.reason)
print(data.decode('utf-8'))
还在发出请求时添加了 headers=headers 而不是 urlencode(headers)。
我必须从 mulesoft/cloudhub 从 python 下载日志。我试过从命令提示符中获取日志并且成功了。我在 CMD 中尝试的是 -
1. curl -d "username=<my_username>&password=<my_password>" https://anypoint.mulesoft.com/accounts/login
2. curl -H "Authorization: Bearer <access token>" -H "X-ANYPNT-ENV-ID: <environment ID>" "https://anypoint.mulesoft.com/cloudhub/api/v2/applications/<domain>/instances/<instance ID>/log-file"
我在 python-
中尝试了以下代码import http.client
headers = {'X-ANYPNT-ENV-ID': '{env id}'}
conn = http.client.HTTPSConnection('anypoint.mulesoft.com')
conn.request('GET','/cloudhub/api/v2/applications/{domain}/instances/{instanceId}/logs', urlencode(headers))
res = conn.getresponse()
data = res.read()
print(res.status, res.reason)
print(data.decode('utf-8'))
print(res.getheaders())
但是我得到了以下错误-
{"error":"Unauthorized","message":"Failed to create session. You must provide a valid Authorization header"}
我是 mulesoft 的新手,所以如果您能提供详细的回答,我将不胜感激。 谢谢。
Python 脚本缺少第一次调用以获取 API 请求所需的访问令牌。第一个 curl 请求就是为此目的。需要加一个conn.request获取token,提取后在日志请求中添加授权header
经过这么多的尝试,我终于得到了答案。我需要对我的用户名和密码进行编码,然后将其传递,如下所示-
a = bytes('<my_usermame>:<my_password>', 'ascii')
userAndPass = b64encode(a).decode("ascii")
headers = {'Authorization' : 'Basic %s' %userAndPass , 'X-ANYPNT-ENV-ID': '<my_env_id> }
conn = http.client.HTTPSConnection('anypoint.mulesoft.com')
conn.request('GET','/cloudhub/api/v2/applications/{domain}/instances/{instanceId}/logs', headers=headers)
res = conn.getresponse()
data = res.read()
print(res.status, res.reason)
print(data.decode('utf-8'))
还在发出请求时添加了 headers=headers 而不是 urlencode(headers)。