Python的AppDynamics REST调用存在问题

Python的AppDynamics REST调用存在问题,python,python-2.7,appdynamics,Python,Python 2.7,Appdynamics,我试图使用python请求调用AppDynamics API,但遇到了一个问题。 我使用python客户端编写了一个示例代码,如下所示 from appd.request import AppDynamicsClient c = AppDynamicsClient('URL','group','appd@123') for app in c.get_applications(): print app.id, app.name 它很好用 但是如果我做一个像下面这样的简单的电话 impor

我试图使用python请求调用AppDynamics API,但遇到了一个问题。 我使用python客户端编写了一个示例代码,如下所示

from appd.request import AppDynamicsClient
c = AppDynamicsClient('URL','group','appd@123')
for app in c.get_applications():
    print app.id, app.name
它很好用

但是如果我做一个像下面这样的简单的电话

import requests
usr =<uid>
pwd =<pwd>
url ='http://10.201.51.40:8090/controller/rest/applications?output=JSON'
response = requests.get(url,auth=(usr,pwd))
print 'response',response
我得到以下回应:

response <Response [401]>
我做错什么了吗?

两件事:

我认为app dynamics应用程序的通用URL格式如下:

url ='http://10.201.51.40:8090/controller/#/rest/applications?output=JSON'
另外,我认为requests.get方法需要为“account”添加一个额外的参数。例如,我的身份验证格式如下所示:

auth = (_username + '@' + _account, _password)
我能够用这个配置获得正确的响应代码。让我知道这是否适合您。

您也可以使用本机python代码进行更多控制:

例如:

import os
import sys
import urllib2
import base64

# if you have a proxy else comment out this line
proxy = urllib2.ProxyHandler({'https': 'proxy:port'}) 

opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)

username = "YOUR APPD REST API USER NAME"
password = "YOUR APPD REST API PASSWORD"

#Enter your request
request = urllib2.Request("https://yourappdendpoint/controller/rest/applications/141/events?time-range-type=BEFORE_NOW&duration-in-mins=5&event-types=ERROR,APPLICATION_ERROR,DIAGNOSTIC_SESSION&severities=ERROR")

base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
response = urllib2.urlopen(request)

html = response.read()
这将得到响应,您可以根据需要解析XML。 如果喜欢JSON格式,只需在请求中指定即可