protected ClientInvocation createRequest(Object[] args, Request request) { ClientInvocation inv = super.createRequest(args); RestfulUtil.encodeAttachments(inv.getHeaders().getHeaders(), request.getAttachments()); return inv; }
@Override public MediaType getMediaType() { return invocation.getHeaders().getMediaType(); }
@Override public MultivaluedMap<String, Object> getHeaders() { return invocation.getHeaders().getHeaders(); }
@Override public Date getDate() { return invocation.getHeaders().getDate(); }
@Override public List<MediaType> getAcceptableMediaTypes() { List<MediaType> rtn = invocation.getHeaders().getAcceptableMediaTypes(); if (rtn.size() == 0) { rtn = new ArrayList<MediaType>(); rtn.add(MediaType.WILDCARD_TYPE); } return rtn; }
@Override public MultivaluedMap<String, String> getStringHeaders() { return invocation.getHeaders().asMap(); }
@Override public String getHeaderString(String name) { return invocation.getHeaders().getHeader(name); }
@Override protected ClientInvocation apply(ClientInvocation invocation, Object object) { invocation.getHeaders().header(paramName, object); return invocation; }
@Override public Locale getLanguage() { return invocation.getHeaders().getLanguage(); }
@Override public List<Locale> getAcceptableLanguages() { return invocation.getHeaders().getAcceptableLanguages(); }
@Override public Map<String, Cookie> getCookies() { return invocation.getHeaders().getCookies(); }
/** * Add headers to HttpURLConnection from ClientInvocation. Should be executed before writing body. * @param request ClientInvocation * @param connection HttpURLConnection */ protected void commitHeaders(ClientInvocation request, HttpURLConnection connection) { MultivaluedMap<String, String> headers = request.getHeaders().asMap(); for (Map.Entry<String, List<String>> header : headers.entrySet()) { List<String> values = header.getValue(); for (String value : values) { connection.addRequestProperty(header.getKey(), value); } } }
protected void commitHeaders(ClientInvocation request, HttpRequestBase httpMethod) { MultivaluedMap<String, String> headers = request.getHeaders().asMap(); for (Map.Entry<String, List<String>> header : headers.entrySet()) { List<String> values = header.getValue(); for (String value : values) { httpMethod.addHeader(header.getKey(), value); } } }
private static void commitHeaders(ClientInvocation request, HttpRequestBase httpMethod) { MultivaluedMap<String, String> headers = request.getHeaders().asMap(); for (Map.Entry<String, List<String>> header : headers.entrySet()) { List<String> values = header.getValue(); for (String value : values) { httpMethod.addHeader(header.getKey(), value); } } }
@Override public void process(ClientInvocation invocation, Object object) { if (object == null) return; // don't set a null value if (object instanceof Cookie) { Cookie cookie = (Cookie) object; invocation.getHeaders().cookie(cookie); } else { ClientConfiguration cc = invocation.getClientConfiguration(); String s = (annotations != null && type != null) ? cc.toString(object, type, annotations) : cc.toString(object); invocation.getHeaders().cookie(new Cookie(cookieName, s)); } } }
.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, request.getHeaders().getMediaType().toString())); entityToBuild = entityToBuildByteArray; request.getHeaders().getMediaType().toString());
private static HttpUriRequest buildHttpRequest(ClientInvocation request) { // Writers may change headers. Thus buffer the content before committing the headers. // For simplicity's sake the content is buffered in memory. File-buffering (ZeroCopyConsumer...) would be // possible, but resource management is error-prone. HttpRequestBase httpRequest = createHttpMethod(request.getUri(), request.getMethod()); if (request.getEntity() != null) { byte[] requestContent = requestContent(request); ByteArrayEntity entity = new ByteArrayEntity(requestContent); entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, request.getHeaders().getMediaType().toString())); commitHeaders(request, httpRequest); ((HttpEntityEnclosingRequest) httpRequest).setEntity(entity); } else { commitHeaders(request, httpRequest); } return httpRequest; }
protected Object invokeAsync(final Object[] args) { ClientInvocationBuilder builder = (ClientInvocationBuilder) webTarget.request(); ClientInvocation request = createRequest(args); builder.setClientInvocation(request); ExecutorService executor = webTarget.getResteasyClient().getScheduledExecutor(); if (executor == null) { executor = webTarget.getResteasyClient().asyncInvocationExecutor(); } RxInvoker<?> rxInvoker = (RxInvoker<?>) rxInvokerProvider.getRxInvoker(builder, executor); Type type = method.getGenericReturnType(); if (type instanceof ParameterizedType) { type = ((ParameterizedType) type).getActualTypeArguments()[0]; } GenericType<?> gt = new GenericType(type); Object e = request.getEntity(); Object o = null; if (e != null) { o = rxInvoker.method(getHttpMethod(), Entity.entity(e, request.getHeaders().getMediaType()), gt); } else { o = rxInvoker.method(getHttpMethod(), gt); } return o; }
invocation.getHeaders().asMap().forEach((h, vs) -> vs.forEach(v -> request.header(h, v))); configureTimeout(request); if (request.getAttributes().get(FOLLOW_REDIRECTS) == Boolean.FALSE) {
protected ClientInvocation createRequest(Object[] args) { WebTarget target = this.webTarget; for (int i = 0; i < processors.length; i++) { if (processors != null && processors[i] instanceof WebTargetProcessor) { WebTargetProcessor processor = (WebTargetProcessor)processors[i]; target = processor.build(target, args[i]); } } ClientConfiguration parentConfiguration=(ClientConfiguration) target.getConfiguration(); ClientInvocation clientInvocation = new ClientInvocation(this.webTarget.getResteasyClient(), target.getUri(), new ClientRequestHeaders(parentConfiguration), parentConfiguration); clientInvocation.setClientInvoker(this); if (accepts != null) { clientInvocation.getHeaders().accept(accepts); } for (int i = 0; i < processors.length; i++) { if (processors != null && processors[i] instanceof InvocationProcessor) { InvocationProcessor processor = (InvocationProcessor)processors[i]; processor.process(clientInvocation, args[i]); } } clientInvocation.setMethod(httpMethod); return clientInvocation; }