use of org.webpieces.httpparser.api.dto.HttpRequest in project webpieces by deanhiller.
the class Requests method createJsonRequest.
public static HttpDummyRequest createJsonRequest(KnownHttpMethod method, String url) {
HttpRequest request = createRequest(method, url);
String json = "{ `query`: `cats and dogs`, `meta`: { `numResults`: 4 } }".replace("`", "\"");
DataWrapper body = gen.wrapByteArray(json.getBytes());
HttpData data = new HttpData(body, true);
request.addHeader(new Header(KnownHeaderName.CONTENT_LENGTH, body.getReadableSize() + ""));
return new HttpDummyRequest(request, data);
}
use of org.webpieces.httpparser.api.dto.HttpRequest in project webpieces by deanhiller.
the class TestAsyncWebServer method testCompletePromiseOnAnotherThread.
@Test
public void testCompletePromiseOnAnotherThread() {
CompletableFuture<Integer> future = new CompletableFuture<Integer>();
mockNotFoundLib.queueFuture(future);
HttpRequest req = Requests.createRequest(KnownHttpMethod.GET, "/asyncSuccessRoute");
http11Socket.send(req);
//no response yet...
List<FullResponse> responses1 = http11Socket.getResponses();
Assert.assertEquals(0, responses1.size());
//now have the server complete processing
future.complete(5);
FullResponse response = ResponseExtract.assertSingleResponse(http11Socket);
response.assertStatusCode(KnownStatusCode.HTTP_200_OK);
response.assertContains("Hi Dean Hiller, This is a page");
}
use of org.webpieces.httpparser.api.dto.HttpRequest in project webpieces by deanhiller.
the class TestAsyncWebServer method testRedirect.
@Test
public void testRedirect() {
HttpRequest req = Requests.createRequest(KnownHttpMethod.GET, "/");
http11Socket.send(req);
FullResponse response = ResponseExtract.assertSingleResponse(http11Socket);
response.assertStatusCode(KnownStatusCode.HTTP_303_SEEOTHER);
Assert.assertEquals(0, response.getBody().getReadableSize());
}
use of org.webpieces.httpparser.api.dto.HttpRequest in project webpieces by deanhiller.
the class Requests method createRequest.
public static HttpRequest createRequest(KnownHttpMethod method, String url, Integer port) {
HttpUri httpUri = new HttpUri(url);
HttpRequestLine requestLine = new HttpRequestLine();
requestLine.setMethod(method);
requestLine.setUri(httpUri);
HttpRequest req = new HttpRequest();
req.setRequestLine(requestLine);
if (port == null)
req.addHeader(new Header(KnownHeaderName.HOST, "myhost.com"));
else
req.addHeader(new Header(KnownHeaderName.HOST, "myhost.com:" + port));
return req;
}
use of org.webpieces.httpparser.api.dto.HttpRequest in project webpieces by deanhiller.
the class Requests method createPostRequestImpl.
private static HttpDummyRequest createPostRequestImpl(String url, String... argTuples) throws UnsupportedEncodingException {
if (argTuples.length % 2 != 0)
throw new IllegalArgumentException("argTuples.length must be of even size (key/value)");
HttpUri httpUri = new HttpUri(url);
HttpRequestLine requestLine = new HttpRequestLine();
requestLine.setMethod(KnownHttpMethod.POST);
requestLine.setUri(httpUri);
HttpRequest req = new HttpRequest();
req.setRequestLine(requestLine);
req.addHeader(new Header(KnownHeaderName.HOST, "myhost.com"));
String encodedParams = "";
for (int i = 0; i < argTuples.length; i += 2) {
String key = URLEncoder.encode(argTuples[i], StandardCharsets.UTF_8);
String value = URLEncoder.encode(argTuples[i + 1], StandardCharsets.UTF_8);
if (!"".equals(encodedParams))
encodedParams += "&";
encodedParams += key + "=" + value;
}
byte[] bytes = encodedParams.getBytes(StandardCharsets.UTF_8);
DataWrapper body = gen.wrapByteArray(bytes);
HttpData data = new HttpData(body, true);
req.addHeader(new Header(KnownHeaderName.CONTENT_LENGTH, "" + body.getReadableSize()));
req.addHeader(new Header(KnownHeaderName.CONTENT_TYPE, "application/x-www-form-urlencoded"));
return new HttpDummyRequest(req, data);
}
Aggregations