public static Result doPost() throws Exception { RequestBody requestBody = request().body(); byte[] requestContent = null; RawBuffer rawBuffer = requestBody.asRaw(); if (rawBuffer != null) { requestContent = rawBuffer.asBytes(); } else { requestContent = requestBody.asText().getBytes(Constants.UTF8); } InputStream in = new ByteArrayInputStream(requestContent); ByteArrayOutputStream out = new ByteArrayOutputStream(); TTransport transport = new TIOStreamTransport(in, out); TProtocol inProtocol = protocolFactory.getProtocol(transport); TProtocol outProtocol = protocolFactory.getProtocol(transport); processor.process(inProtocol, outProtocol); response().setHeader(CONTENT_TYPE, "application/x-thrift"); return ok(out.toByteArray()); }
@SuppressWarnings("unchecked") private static Map<String, Object> parseRequest() { RequestBody requestBody = request().body(); String requestContent = null; JsonNode jsonNode = requestBody.asJson(); if (jsonNode != null) { requestContent = jsonNode.toString(); } else { RawBuffer rawBuffer = requestBody.asRaw(); if (rawBuffer != null) { requestContent = new String(rawBuffer.asBytes(), Constants.UTF8); } else { requestContent = requestBody.asText(); } } return SerializationUtils.fromJsonString(requestContent, Map.class); }
@Override public JsonNode getRequestBodyAsJsonNode(Request request) throws JsonProcessingException, IOException { RawBuffer rawBuffer = request.body().asRaw(); if (rawBuffer == null) { throw new RuntimeException("Body is null in the specified request"); } byte[] bodyAsByteArray = rawBuffer.asBytes(); return getMapper().readTree(bodyAsByteArray); }