How to inspect POST data on HTTP_REQUEST
I'm trying to route users based on the payload of a POST request, and failing :)
Here's a simplified version of my iRule:
when HTTP_REQUEST {
HTTP::collect 100
if { [HTTP::method] equals "POST" } {
HTTP::collect [HTTP::header "Content-Length"]
log local0. "CONTENT LENGTH 1 = [HTTP::header "Content-Length"]"
log local0. "CONTENT LENGTH 2 = [HTTP::payload length]"
log local0. "CONTENT = [HTTP::payload 100]"
log local0. "URI: --[HTTP::uri]--"
if { [HTTP::payload 100] starts_with "SCREEN_ID=" } {
log local0. "PAYLOAD IS NOT EMPTY: [HTTP::payload 100]"
}
}
pool QAMEFT02E1NaviNetHTTPBrowser
}
Log output shows the payload is always empty, even though it's not. The log statement appear to conflict - [HTTP::header "Content-Length"] returns the correct value, [HTTP::payload length] always returns 0, and [HTTP::payload 100] always returns empty string.
Am I doing this wrong? What's the correct way to grab POST request payload? Thanks in advance,
-Daire