Not a customer? Click the 'Start a free trial' link to begin a 30-day SaaS trial of our product and to join our community.
Existing Cisco AppDynamics customers should click the 'Sign In' button to authenticate to access the community
05-27-2018 11:04 PM - last edited on 01-08-2020 03:24 PM by Ryan.Paredez
Hi,
1: How do I trigger an HTTP POST via the AppDynamics Synthetic jobs? I think I have to write a script; is there any example I can use?
2: https://docs.appdynamics.com/display/PRO44/Synthetic+Scripts suggests I can use 'Python requests for humans' but doesn't give any examples. Where can I find a working example?
04-20-2019 11:31 AM - last edited on 01-08-2020 03:24 PM by Ryan.Paredez
Has anyone managed to get a POST Request through AppD Synthetics to work ? I've tried contacting AppD support but it hasn't yeilded any positive results.
03-05-2020 09:01 AM
Hi Terence, i had the same problem, I needed to call an API to get a token parameter, and use these token to call another API. For this i used the script below:
# importing the requests library
import requests
import json
# String used to validate the success of the call
stringVerificacao = "CDXM084E"
url = 'https://<api1>:8443/auth/oauth/v2/token'
headers = {'Content-Type':'application/x-www-form-urlencoded'}
# POST parameters
data = {'grant_type':'client_credentials',
'client_id': 'xxxxxxx',
'client_secret':'xxxxxxxxxx',
'scope': 'teste',}
#Execute the first POST request
res = requests.post(url, data=data, headers=headers, verify=False)
#Extract the token from the json response
retornoPOST = res.text
print("Retorno da API " + str(url) + ": \n %s" % retornoPOST)
json_object = json.loads(retornoPOST)
token = json_object['access_token']
#print json_object['access_token']
url2 = 'https://<api2>:8443/v1/xxxxxx'
headers2 = {'Content-Type':'application/json','Authorization':+ token}
data2 = '{'grant_type':'client_credentials',
'client_id': 'xxxxxxx',
'client_secret':'xxxxxxxxxx',
'scope': 'teste',}'
#Execute the second POST request
res2 = requests.post(url2, data=data2, headers=headers2, verify=False)
# extracting response text
retornoPOST2 = res2.text
print("Retorno da API " + str(url) + ": \n %s" % retornoPOST2)
json_object2 = json.loads(retornoPOST2)
codigoerro = json_object2['CodigoErro']
#Compare if the response contains the validate string
# If contains the response, print the values
if codigoerro == stringVerificacao:
print("String de validação '" + str(codigoerro) + "' econtrada com sucesso")
print(retornoPOST2)
# Else, raise a Exception to the script to be mark as error in appdynamics
elif codigoerro != stringVerificacao:
raise Exception("Código '" + str(stringVerificacao) + "' não encontrado no retorno da API: \n %s" % retornoPOST2)
I hope this helps!
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
Thank you! Your submission has been received!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form