@Override public HttpHeaders getHeaders() { if (httpHeaders == null) { HttpHeaders tmpHeaders = new HttpHeaders(); Headers headers = response.getHeaders(); if (headers.getHeaderMap() != null) { for (Entry<String, List<Object>> entry : headers.getHeaderMap().entrySet()) { for (Object value : entry.getValue()) { tmpHeaders.add(entry.getKey(), String.valueOf(value)); } } } httpHeaders = tmpHeaders; } return httpHeaders; }
@Override public Object mapResponse(Response response) { ResponseBuilder responseBuilder = javax.ws.rs.core.Response.status(response.getStatus()).entity(response.getResult()); Map<String, List<Object>> headers = response.getHeaders().getHeaderMap(); if (headers != null) { for (Entry<String, List<Object>> entry : headers.entrySet()) { responseBuilder.header(entry.getKey(), entry.getValue()); } } return responseBuilder.build(); } }
@Override public Response mapResponse(StatusType status, Object response) { javax.ws.rs.core.Response jaxrsResponse = (javax.ws.rs.core.Response) response; Response cseResponse = Response.status(jaxrsResponse.getStatusInfo()).entity(jaxrsResponse.getEntity()); MultivaluedMap<String, Object> headers = jaxrsResponse.getHeaders(); for (Entry<String, List<Object>> entry : headers.entrySet()) { if (entry.getValue() == null || entry.getValue().isEmpty()) { continue; } cseResponse.getHeaders().getHeaderMap().put(entry.getKey(), entry.getValue()); } return cseResponse; } }
private void onProviderResponse(Invocation invocation, Response response) { routingContext.response().putHeader("content-type", "application/grpc"); if (response.getHeaders().getHeaderMap() != null) { for (Entry<String, List<Object>> entry : response.getHeaders().getHeaderMap().entrySet()) { for (Object value : entry.getValue()) { routingContext.response().putHeader(entry.getKey(), String.valueOf(value)); } } } if (response.isSuccessed()) { sendSuccessResponse(invocation, response); return; } sendFailResponse(response.getResult()); }
@SuppressWarnings("deprecation") protected void sendResponse(Response response) throws Exception { if (response.getHeaders().getHeaderMap() != null) { for (Entry<String, List<Object>> entry : response.getHeaders().getHeaderMap().entrySet()) { for (Object value : entry.getValue()) { if (!entry.getKey().equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH)) { responseEx.addHeader(entry.getKey(), String.valueOf(value)); } } } } responseEx.setStatus(response.getStatusCode(), response.getReasonPhrase()); responseEx.setContentType(produceProcessor.getName()); Object body = response.getResult(); if (response.isFailed()) { body = ((InvocationException) body).getErrorData(); } try (BufferOutputStream output = new BufferOutputStream(Unpooled.compositeBuffer())) { produceProcessor.encodeResponse(output, body); responseEx.setBodyBuffer(output.getBuffer()); for (HttpServerFilter filter : httpServerFilters) { filter.beforeSendResponse(invocation, responseEx); } responseEx.flushBuffer(); } }