
org.webpieces.webserver.test.WebBrowserSimulator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of http-webserver-test Show documentation
Show all versions of http-webserver-test Show documentation
The full webpieces server AS A library
The newest version!
package org.webpieces.webserver.test;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.CompletableFuture;
import org.webpieces.httpclient11.api.HttpFullRequest;
import org.webpieces.httpclient11.api.HttpFullResponse;
import org.webpieces.httpclient11.api.HttpSocket;
import org.webpieces.httpparser.api.common.Header;
import org.webpieces.httpparser.api.common.KnownHeaderName;
public class WebBrowserSimulator {
private HttpSocket socket;
private Map cookieToValue = new HashMap<>();
public WebBrowserSimulator(HttpSocket socket) {
this.socket = socket;
}
public ResponseWrapper send(HttpFullRequest request) {
if(cookieToValue.size() > 0) {
request.addHeader(createCookieHeader());
}
CompletableFuture respFuture = socket.send(request);
ResponseWrapper responseWrapper = ResponseExtract.waitResponseAndWrap(respFuture);
cookieToValue = responseWrapper.modifyCookieMap(cookieToValue);
return responseWrapper;
}
public Header createCookieHeader() {
boolean isFirstLine = true;
String fullRequestCookie = "";
for(Entry entry : cookieToValue.entrySet()) {
if(isFirstLine) {
isFirstLine = false;
fullRequestCookie += entry.getKey()+"="+entry.getValue();
} else
fullRequestCookie += "; "+entry.getKey()+"="+entry.getValue();
}
return new Header(KnownHeaderName.COOKIE, fullRequestCookie);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy