Forum Discussion

JT_144596's avatar
JT_144596
Icon for Nimbostratus rankNimbostratus
Jun 15, 2016

edit a request variable after being set?

Hi,

I'm setting a variable copy of a GET request, is it possible to change the values within the variable after I have set? for instance, the URI?

example:

set req [HTTP::request]

set req uri = "new/uri"

Thanks Jon

4 Replies

  • HTTP::uri [HTTP::uri]/new/uri

    Something like the above in the iRule will append "/new/uri" to the existing URI. Is that what you are seeking ? Basically, with the [ ] brackets, you are reading the variable and without the [ ] brackets, you are writing to it.

  • Added as answer so i can format

    Here is the irule, i have *** where the functionality needs to go.

        when HTTP_REQUEST { 
    
        set Original_request [HTTP::request] 
        HTTP::uri "/newURI[HTTP::uri]"
         Send the out-of-band validation query to the MicroService. 
            log local0. "Calling new service"
        pool new_service_pool
      }
    }
    } 
    when HTTP_RESPONSE { 
    
        if {[HTTP::status] eq 302 } {
        pool 2nd_pool 
        ***** Change the $Original_request URI ****
        HTTP::retry $Original_request 
    
        } else {
          HTTP::retry $Original_request 
          log local0. "No Re-direct - Carry on as we were" 
        }
        }
    
    • Vijay_E's avatar
      Vijay_E
      Icon for Cirrus rankCirrus
      Instead of saving the request, why not use a fresh one ? The fresh one seems to be completely independent of the saved request, unless I am mistaken.
    • JT_144596's avatar
      JT_144596
      Icon for Nimbostratus rankNimbostratus
      Hi, I need the original request parameters, however I have used String manipulation for this now. Thanks for your help. JT