Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get the url of a redirect with Rest Assured?

I am making a GET request which then makes a 307 redirect to another URL and from there it makes another 302 redirect and so on till it gets to the requested page. I am having problems extracting the URL from the first redirect, the 307, I want to see the location where is redirected to. I am using Rest Assured as framework. Thanks!

like image 407
Gudzo Avatar asked Mar 27 '17 14:03

Gudzo


1 Answers

I had the same problem, but I didn't have the 307, just 302. I imagine the solution would be the same. What I did was:

  1. stop following the redirects on the first call with redirects().follow(false)

  2. capture the URL from the first redirect

  3. make another call to follow the redirect(s)

    Response resp1 =
            given().
                contentType(ContentType.URLENC).
                body("AUTH_TOKEN=&j_username=" + encodedUsername + "&j_password=" + password + "&userName=&AUTH_TOKEN=").
                redirects().follow(false).
            expect().
                statusCode(302).
            when().
                post("/authenticate/j_spring_security_check");
    
    String headerLocationValue = resp1.getHeader("Location");
    
    Response resp2 =
            given().
                cookie(resp1.getDetailedCookie("JSESSIONID")).
            expect().
                statusCode(200).
            when().
                get(headerLocationValue);
    
like image 173
rom_cruz Avatar answered Nov 15 '22 13:11

rom_cruz