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

How to extract values from response body

Yosi_Neuman
DynaMight Guru
DynaMight Guru

Hi guys, 

Customer asks to monitor OPEN APIC with synthetic so we create http checks with token saved in the vault.

The issue here is that the tokens got only 10 hours lifetime and we need to generate a new token with rest api every hour.

Our intension now is to call the rest api that generate the token on OPEN APIC and with value from the response body to set a value (with api.setValue(key, value)) for the next step which will send dynatrace vault rest api to change the value of the token to the new one.  

We need your help here with how to extract values from response body in the post execution step with response.getResponseBody() , how can we extract a value after token=" till the next " from the response body?

Thanks in advance

Yos 

dynatrace certificated professional - dynatrace master partner - Matrix Soft Ware Division - Israel
10 REPLIES 10

Malaik
DynaMight Champion
DynaMight Champion

Hello

 

I think it's possible using Request Attributes

 

More details here Request Attributes 

Sharing Knowledge

Hi @Malaik 

Question is about post-execution script in http monitor.

How can we implement RA in http monitor?

Yos  

dynatrace certificated professional - dynatrace master partner - Matrix Soft Ware Division - Israel

alvaro_sanchez
Dynatrace Helper
Dynatrace Helper

Hi Yosi,

 

As the response body is a string, I'd say using a regex match would do the trick, with a capture group somewhat like this (adapt it to the format of your token of course):

api.setValue("token", responseBody.match(new RegExp("token=\"([A-z0-9]+)\""))[1])

 

Regards,

Álvaro

Hi @alvaro_sanchez  

Great , will give it a try next week at customer site and will update !

Thanks a lot

Yos 

 

dynatrace certificated professional - dynatrace master partner - Matrix Soft Ware Division - Israel

Hi @Yosi_Neuman!

 

I'm curious how this issue has ended eventually, were you able to find a desired solution as promised last year? 😄

 

Best regards!

Hi @Michal_Gebacki 

As far as I remember it works OK.

I have accepted @alvaro_sanchez  answer as a solution  and sorry for the "slight" delay in doing that :facepalm:

Yos 

dynatrace certificated professional - dynatrace master partner - Matrix Soft Ware Division - Israel

jkinner
Visitor

I can confirm that you can use regex in the post-execution synthetic script. Here is who I did it for our application. 

jkinner_0-1668543806920.png

 

jmodeorain14
Visitor

Hi,

I'm trying to capture a specific value from the response of a HTTP (API) request.

I have tried the approaches suggested by @alvaro_sanchez and @jkinner above, but with no success.

I've attached an example of the response from the API request.

I specifically need to capture the value returned for "policyNo" into a new variable, "policyNumber".

Does anyone have any suggestions on how I can get this working?

jmodeorain14

I was able to extract the value of policyNo from the response body.

In case anyone is interested or has a similar challenge in future, here is the post-execution script I used:

jmodeorain14_0-1695369653731.png

jmodeorain14

Malaik
DynaMight Champion
DynaMight Champion

Hi
And where you put this code?

Sharing Knowledge

Featured Posts