【问题标题】:How to Authorize myself to mulesoft/cloudhub account from python?如何从 python 授权自己到 mulesoft/cloudhub 帐户?
【发布时间】:2020-10-05 17:53:51
【问题描述】:

我必须从 python 的 mulesoft/cloudhub 下载日志。我尝试从命令提示符获取日志,并且成功。我在 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 mulesoft cloudhub


    【解决方案1】:

    Python 脚本缺少第一次调用来获取 API 请求所需的访问令牌。第一个 curl 请求就是为此。您需要添加一个 conn.request 来获取令牌,提取它并将授权标头添加到日志请求中。

    【讨论】:

      【解决方案2】:

      经过这么多线索,我终于得到了答案。我需要对我的用户名和密码进行编码然后传递它,如下所示-

      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)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-28
        • 2014-11-08
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 2021-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多