Forum Discussion
Remove a parameter from a query
Hi all,
I'm trying to remove a parameter from a query and I've tried to do it in so many ways but they didn't work as I expected...
For example the URL could be:
And I'd like to eliminate this parameter "X-PROVE-3GPDPContext=yes" from the query without removing the others.
I've tried it using the "remove" command for HTTP:query and HTTP:uri.
[HTTP::query] remove "X-VODAFONE-3GPDPContext="
Also splitting the URI like this:
if {($queryM contains "X-PROVE-3GPDPContext")}{
Split the query into name-value pairs delimited by "&"
set namevals [split [HTTP::query] "&"]
A TCL for loop - if you ever wondered what one looks like...
for {set i 0} {$i < [llength $namevals]} {incr i} {
if { $::debug>=1 } { log local0. " i: $i" }
Split name-value pair into name and value delimited by "="
set params [split [lindex $namevals $i] "="]
if { $::debug>=1 } { log local0. " parameters: $param" }
set name [lindex $params 0]
if { $::debug>=1 } { log local0. " nam : $name" }
set val [lindex $params 1]
if { $::debug>=1 } { log local0. " value : $val" }
}
But I am not able to do it in a right way.
Could you help me??
Thank you in advance!
Silvia
- Michael_Yates
Nimbostratus
If you just want to remove that text from the URI going to the server this should work for you.when HTTP_REQUEST { if { [HTTP::uri] contains "X-VODAFONE-3GPDPContext=" } { HTTP::uri [string map {"X-VODAFONE-3GPDPContext=" ""} [HTTP::uri]] } }
- hoolio
Cirrostratus
If you want to remove the parameter name and value (if present) from the query string, you could try something like this:when HTTP_REQUEST { Check if the query string parameter value isn't null if {[HTTP::query] contains "X-VODAFONE-3GPDPContext="}{ Use a workaround to parse the parameter value from the query string described on http://devcentral.f5.com/wiki/default.aspx/iRules/uri__query set param_value [URI::query "?&[HTTP::query] "&X-VODAFONE-3GPDPContext"] Save a copy of the URI with the param and value removed set uri [string map [list "X-VODAFONE-3GPDPContext=$param_value" ""] [HTTP::uri]] Replace && with & in the updated query string if && is present and set the URI to this HTTP::uri [string map "&& &" $uri] Log the cached and updated values for the URI log local0. "Original URI: [HTTP::uri], updated URI: [string map "&& &" $uri]" } }
- hoolio
Cirrostratus
The forum munged the &'s in the code block. So replace each & amp ; in the post with &. - Silvia_84906
Nimbostratus
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com