From 2db80a51097e87345b1221b753356b31c439cbb7 Mon Sep 17 00:00:00 2001 From: Jan Verstuyft Date: Fri, 4 Mar 2022 13:23:12 +0100 Subject: [PATCH] make use of none httpclient stuff for the stub --- pom.xml | 2 +- .../test/fitnesse/drivers/ClientDriver.java | 13 ++++++++--- .../test/fitnesse/fixture/StubsServlet.java | 23 ++++++++++--------- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 31ce75c..0da54c4 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ https://github.com/smartrics/RestFixtureLiveDoc UTF-8 - 4.4 + 4.5-SNAPSHOT diff --git a/src/main/java/smartrics/rest/test/fitnesse/drivers/ClientDriver.java b/src/main/java/smartrics/rest/test/fitnesse/drivers/ClientDriver.java index 31b2973..f6a2245 100644 --- a/src/main/java/smartrics/rest/test/fitnesse/drivers/ClientDriver.java +++ b/src/main/java/smartrics/rest/test/fitnesse/drivers/ClientDriver.java @@ -20,14 +20,16 @@ */ package smartrics.rest.test.fitnesse.drivers; -import org.apache.commons.httpclient.HttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import smartrics.rest.client.RestClient; import smartrics.rest.client.RestClientImpl; import smartrics.rest.client.RestRequest; import smartrics.rest.client.RestRequest.Method; import smartrics.rest.client.RestResponse; +import java.util.concurrent.TimeUnit; + public class ClientDriver { public static void main(String[] args) { @@ -35,7 +37,7 @@ public static void main(String[] args) { } public static void postForm(String[] args) { - RestClient c = new RestClientImpl(new HttpClient()); + RestClient c = buildRestClient(); RestRequest req = new RestRequest(); req.setBody("name=n&data=d1"); req.setResource("/resources/"); @@ -45,8 +47,13 @@ public static void postForm(String[] args) { System.out.println("=======>\n" + res + "\n<======="); } + private static RestClientImpl buildRestClient() { + return new RestClientImpl(HttpClientBuilder.create() + .setConnectionTimeToLive(60, TimeUnit.MILLISECONDS).build()); + } + public static void postXml(String[] args) { - RestClient c = new RestClientImpl(new HttpClient()); + RestClient c = buildRestClient(); RestRequest req = new RestRequest(); req.setBody("nd1"); diff --git a/src/main/java/smartrics/rest/test/fitnesse/fixture/StubsServlet.java b/src/main/java/smartrics/rest/test/fitnesse/fixture/StubsServlet.java index 4d4fdbf..123e8e3 100644 --- a/src/main/java/smartrics/rest/test/fitnesse/fixture/StubsServlet.java +++ b/src/main/java/smartrics/rest/test/fitnesse/fixture/StubsServlet.java @@ -22,9 +22,12 @@ import static smartrics.rest.test.fitnesse.fixture.ServletUtils.sanitiseUri; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.nio.charset.Charset; +import java.util.Enumeration; import java.util.List; import javax.servlet.ServletException; @@ -32,9 +35,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.httpclient.Header; -import org.apache.commons.httpclient.HttpParser; - import smartrics.rest.client.RestResponse; public class StubsServlet extends HttpServlet { @@ -55,18 +55,19 @@ protected void service(HttpServletRequest req, HttpServletResponse resp) if (method.equals("POST") && uri.endsWith("/responses")) { nextResponse = new RestResponse(); InputStream is = req.getInputStream(); - String line = HttpParser.readLine(is, Charset.defaultCharset() - .name()); + BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.defaultCharset())); + String line = reader.readLine(); String[] incipit = line.split(" "); nextResponse.setStatusCode(Integer.valueOf(incipit[0])); - Header[] headers = HttpParser.parseHeaders(is, Charset - .defaultCharset().name()); - for (Header h : headers) { - nextResponse.addHeader(h.getName(), h.getValue()); + + Enumeration headerNames = req.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + nextResponse.addHeader(headerName, req.getHeader(headerName)); } - line = HttpParser.readLine(is, Charset.defaultCharset().name()); + line = reader.readLine(); while (line.trim().length() < 1) { - line = HttpParser.readLine(is, Charset.defaultCharset().name()); + line = reader.readLine(); } // check content length and decide how much body you need to parse List cl = nextResponse