Forum Discussion

Jorjjj's avatar
Jorjjj
Icon for Nimbostratus rankNimbostratus
Jan 03, 2018

HTTPS Monitor with POST request

Hello all i have a pool containing 4 members from 2 physical nodes on 2 different ports: Ex:

 

10.10.10.44:9443

 

10.10.10.44:9444

 

10.10.10.45:9443

 

10.10.10.45:9444

 

I need to create a new HTTPS Monitor to check the health of each pool members (All have the same URI to for the same Application)

 

The Dev Team provided us with the following Health Check Request for a Login request:

 

https://10.10.10.44:9443/R13-Live/servlet/BrowserServlet?&method=POST&command=login&signOnName=INPUTT&password=123456&requestType=CREATE.SESSION&counter=0

 

When i do a "Curl -k (URL)" of the above link, I can see that the page loads properly on the CLI and i receive a "200 OK" response, which I am using as a "receive string" value for now.

 

When I try to do the same in the HTTPS Monitor configuration, as per the following two tests, it was not working at all, Monitor stays down

 

Test 1: (HTTP 1.1)

 

GET /R13-Live/servlet/BrowserServlet?&method=POST&command=login&signOnName=INPUTT&password=123456&requestType=CREATE.SESSION&counter=0 HTTP/1.1\r\nHost: app.test\r\nConnection: Close\r\n\r\n

 

Test 2: (HTTP 1.0)

 

GET /R13-Live/servlet/BrowserServlet?&method=POST&command=login&signOnName=INPUTT&password=123456&requestType=CREATE.SESSION&counter=0\r\n

 

Working Test:

 

when i try only the Main URL Part, it is working:

 

GET /R13-Live/servlet/BrowserServlet\r\n

 

How should i create my Send Request with the provided Link, as i think the POST method in it is creating the issue

 

Thanks,

 

Regards,

 

3 Replies

  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus

    First off, I thought you said you needed to do a POST...

     

    You're explicitly doing a GET all 3 times with an HTTP parameter method=POST (Which is not the same as actually doing a POST)

     

  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus

    What's the whole curl command you're using?

     

    Hint. Do a curl, include the -v (verbose) flag and then check the output of what it's sending against what you're sending.

     

  • NAG_65570's avatar
    NAG_65570
    Historic F5 Account

    I have tested it::

     

    On GUI:: Local Traffic ›› Monitors ›› test

     

    Send String::

     

    GET /R13-Live/servlet/BrowserServlet?&method=POST&command=login&signOnName=INPUTT&password=123456&requestType=CREATE.SESSION&counter=0 HTTP/1.1\r\nUser-Agent:BigIP\r\nHost: 10.10.10.102\r\nAccept: /\r\n\r

     

    In packet captures, I see request going out to server::

     

    GET /R13-Live/servlet/BrowserServlet?&method=POST&command=login&signOnName=INPUTT&password=123456&requestType=CREATE.SESSION&counter=0 HTTP/1.1

     

    User-Agent:BigIP

     

    Host: 10.10.10.102

     

    Accept: /

     

    Now Its up-to Server what response it can generate.