cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How do I trigger an HTTP POST via the AppDynamics Synthetic jobs?

felixvolz
Explorer

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? 

2 REPLIES 2

Terence.Danker
Voyager

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.

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!