import io.restassured.RestAssured;
import io.restassured.http.Cookies;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import static io.restassured.RestAssured.given;
public class RestAssuredWebDriverCookie {
@Test
public void cookieTest() {
WebDriver driver = new ChromeDriver();
driver.navigate().to("http://www.someurl.com");
Set<Cookie> seleniumCookies = driver.manage().getCookies();
// This is where the Cookies will live going forward
List restAssuredCookies = new ArrayList();
// Simply pull all the cookies into Rest-Assured
for (org.openqa.selenium.Cookie cookie : seleniumCookies) {
restAssuredCookies.add(new io.restassured.http.Cookie.Builder(cookie.getName(), cookie.getValue()).build());
}
// Pass them into the Rest-Assured Call
given().spec(RestAssured.requestSpecification)
.basePath("/some-path")
.cookies(new Cookies(restAssuredCookies))
.queryParam("id", "1234")
.get()
.then().statusCode(200);
}
}
public void sendFamilyMemberPostRequest() throws InterruptedException{
RestAssured.proxy("[proxyURL]",9502);
Set<Cookie> seleniumCookies = webDriver.manage().getCookies();
// This is where the Cookies will live going forward
List restAssuredCookies = new ArrayList();
// Simply pull all the cookies into Rest-Assured
for (org.openqa.selenium.Cookie cookie : seleniumCookies) {
if(cookie.getName()!="rat_v"&& cookie.getName()!="path"){
restAssuredCookies.add(new Cookie.Builder(cookie.getName(), cookie.getValue()).build());
}
}
String myJson = "{\"familyMemberList\":[{\"name\":\"太郎\",\"gender\":\"M\",\"birthdayType\":\"0\",\"birthday\":\"20190230\"}],\"newsletterSubscription\":true}";
Response resp = given()
.header("Content-Type", "application/json")
.cookies(new Cookies(restAssuredCookies))
.body(myJson)
.post("[requestURL]");
System.out.println("Service response is: " + resp.print());
System.out.println("Status code is: " + resp.statusCode());
}