public static HttpRequest 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()); request.setBody(body); return request; }
public static HttpRequest createBadJsonRequest(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()); request.setBody(body); return request; }
@Override public HttpPayload unmarshal(byte[] msg) { Memento memento = prepareToParse(); DataWrapper dataWrapper = dataGen.wrapByteArray(msg); Memento parsedData = parse(memento, dataWrapper); if(parsedData.getStatus() == ParsedStatus.MSG_PARSED_AND_LEFTOVER_DATA) throw new IllegalArgumentException("There is more data than one http message. Use unmarshalAsync instead"); else if(parsedData.getStatus() == ParsedStatus.NEED_MORE_DATA) throw new IllegalArgumentException("This http message is not complete. Use unmarshalAsynch instead or " + "fix client code to pass in complete http message(or report a bug if it is this libraries fault)"); List<HttpPayload> messages = parsedData.getParsedMessages(); if(messages.size() != 1) throw new IllegalArgumentException("You passed in data for more than one http messages. number of http messages="+messages.size()); return messages.get(0); } }
public static HttpFullRequest createJsonRequest(KnownHttpMethod method, String url) { HttpRequest request = createBaseRequest(method, url); String json = "{ `query`: `cats and dogs`, `meta`: { `numResults`: 4 } }".replace("`", "\""); DataWrapper body = gen.wrapByteArray(json.getBytes()); request.addHeader(new Header(KnownHeaderName.CONTENT_LENGTH, body.getReadableSize()+"")); return new HttpFullRequest(request, body); }
public static HttpFullRequest createBadJsonRequest(KnownHttpMethod method, String url) { HttpRequest request = createBaseRequest(method, url); String json = "{ `query `cats and dogs`, `meta`: { `numResults`: 4 } }".replace("`", "\""); DataWrapper body = gen.wrapByteArray(json.getBytes()); request.addHeader(new Header(KnownHeaderName.CONTENT_LENGTH, body.getReadableSize()+"")); return new HttpFullRequest(request, body); }
private static HttpRequest 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); req.setBody(body); req.addHeader(new Header(KnownHeaderName.CONTENT_LENGTH, ""+body.getReadableSize())); req.addHeader(new Header(KnownHeaderName.CONTENT_TYPE, "application/x-www-form-urlencoded")); return req; }
private static HttpFullRequest 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); req.addHeader(new Header(KnownHeaderName.CONTENT_LENGTH, ""+body.getReadableSize())); req.addHeader(new Header(KnownHeaderName.CONTENT_TYPE, "application/x-www-form-urlencoded")); return new HttpFullRequest(req, body); }