private static Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers, final com.ning.http.client.Request request) { Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers); for (Map.Entry<String, String> e : stringHeaders.entrySet()) { request.getHeaders().add(e.getKey(), e.getValue()); } return stringHeaders; }
private void copyHeaders(final Request request, final HttpRequestPacket requestPacket) { final FluentCaseInsensitiveStringsMap map = request.getHeaders(); if (MiscUtils.isNonEmpty(map)) { for (final Map.Entry<String, List<String>> entry : map.entrySet()) { final String headerName = entry.getKey(); final List<String> headerValues = entry.getValue(); if (MiscUtils.isNonEmpty(headerValues)) { for (final String headerValue : headerValues) { requestPacket.addHeader(headerName, headerValue); } } } } }
/** * Invoke this API if you want to set the Range header on your {@link Request} based on the last valid bytes * position. * * @param request {@link Request} * @return a {@link Request} with the Range header properly set. */ public Request adjustRequestRange(Request request) { Long ri = resumableIndex.get(request.getUrl()); if (ri != null) { byteTransferred.set(ri); } // The Resumbale if (resumableListener != null && resumableListener.length() > 0 && byteTransferred.get() != resumableListener.length()) { byteTransferred.set(resumableListener.length()); } RequestBuilder builder = new RequestBuilder(request); if (request.getHeaders().get("Range").isEmpty() && byteTransferred.get() != 0) { builder.setHeader("Range", "bytes=" + byteTransferred.get() + "-"); } return builder.build(); }
private <T> NettyResponseFuture<T> newNettyResponseFuture(Uri uri, Request request, AsyncHandler<T> asyncHandler, NettyRequest nettyRequest, ProxyServer proxyServer) { NettyResponseFuture<T> future = new NettyResponseFuture<>(// uri,// request,// asyncHandler,// nettyRequest,// config.getMaxRequestRetry(),// request.getConnectionPoolPartitioning(),// proxyServer); String expectHeader = request.getHeaders().getFirstValue(HttpHeaders.Names.EXPECT); if (expectHeader != null && expectHeader.equalsIgnoreCase(HttpHeaders.Values.CONTINUE)) future.setDontWriteBodyBecauseExpectContinue(true); return future; }
public static String perConnectionProxyAuthorizationHeader( Request request, ProxyServer proxyServer, boolean connect) throws IOException { String proxyAuthorization = null; if (connect) { List<String> auth = request.getHeaders().get(PROXY_AUTH_HEADER); String ntlmHeader = getNTLM(auth); if (ntlmHeader != null) { proxyAuthorization = ntlmHeader; } } else if (proxyServer != null && proxyServer.getPrincipal() != null && isNonEmpty(proxyServer.getNtlmDomain())) { List<String> auth = request.getHeaders().get(PROXY_AUTH_HEADER); if (getNTLM(auth) == null) { String msg = NTLMEngine.INSTANCE.generateType1Msg(); proxyAuthorization = "NTLM " + msg; } } return proxyAuthorization; }
private FluentCaseInsensitiveStringsMap propagatedHeaders(Request request, Realm realm, boolean switchToGet) { FluentCaseInsensitiveStringsMap headers = request.getHeaders()// .delete(HttpHeaders.Names.HOST)// .delete(HttpHeaders.Names.CONTENT_LENGTH)// .delete(HttpHeaders.Names.CONTENT_TYPE); if (realm != null && realm.getScheme() == AuthScheme.NTLM) { headers.delete(AUTHORIZATION)// .delete(PROXY_AUTHORIZATION); } return headers; }
FluentCaseInsensitiveStringsMap h = request.getHeaders(); if (h != null) { for (String name : h.keySet()) { if (request.getHeaders().getFirstValue("Accept") == null) { urlConnection.setRequestProperty("Accept", "*/*"); if (request.getHeaders().getFirstValue("User-Agent") != null) { urlConnection.setRequestProperty("User-Agent", request.getHeaders().getFirstValue("User-Agent")); } else if (config.getUserAgent() != null) { urlConnection.setRequestProperty("User-Agent", config.getUserAgent()); if (!request.getHeaders().containsKey("Content-Type")) { urlConnection.setRequestProperty("Content-Type", "text/html;" + bodyCharset); urlConnection.setFixedLengthStreamingMode(formBody.length()); if (!request.getHeaders().containsKey("Content-Type")) { urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); MultipartRequestEntity mre = new MultipartRequestEntity(request.getParts(), request.getHeaders());
= new FluentCaseInsensitiveStringsMap(request.getHeaders()); TransferCompletionHandler.class.cast(h).headers(map);
if (!authHeaders.contains("Kerberos") && ntlmAuthenticate != null) { newRealm = ntlmChallenge(ntlmAuthenticate, request, request.getHeaders(), realm, future); newRealm = kerberosChallenge(channel, authHeaders, request, request.getHeaders(), realm, future); if (newRealm == null) return true; final Request nextRequest = new RequestBuilder(future.getRequest()).setHeaders(request.getHeaders()).setRealm(newRealm).build();
final MultipartBody multipartBody = MultipartUtils.newMultipartBody(parts, request.getHeaders()); final long contentLength = multipartBody.getContentLength(); final String contentType = multipartBody.getContentType();
private static Realm ntlmChallenge(final Connection c, final String wwwAuth, final Request request, final Realm realm, final boolean proxyInd) throws NTLMEngineException { final FluentCaseInsensitiveStringsMap headers = request.getHeaders(); if (wwwAuth.equals("NTLM")) { // server replied bare NTLM => we didn't preemptively sent Type1Msg String challengeHeader = NTLMEngine.INSTANCE.generateType1Msg(); addNTLMAuthorizationHeader(headers, challengeHeader, proxyInd); } else { // probably receiving Type2Msg, so we issue Type3Msg addType3NTLMAuthorizationHeader(wwwAuth, headers, realm, proxyInd); // we mark NTLM as established for the Connection to // avoid preemptive NTLM Utils.setNtlmEstablished(c); } return new Realm.RealmBuilder().clone(realm)// .setUri(request.getUri())// .setMethodName(request.getMethod())// .build(); }
FluentCaseInsensitiveStringsMap requestHeaders = request.getHeaders(); final Request nextRequest = new RequestBuilder(future.getRequest()).setHeaders(request.getHeaders()).setRealm(newRealm).build();
private static Realm ntlmProxyChallenge(final Connection c, final String wwwAuth, final Request request, final ProxyServer proxyServer) throws NTLMEngineException { final FluentCaseInsensitiveStringsMap headers = request.getHeaders(); headers.remove(Header.ProxyAuthorization.toString()); Realm realm = proxyServer.realmBuilder()// .setScheme(AuthScheme.NTLM)// .setUri(request.getUri())// .setMethodName(request.getMethod()).build(); addType3NTLMAuthorizationHeader(wwwAuth, headers, realm, true); // we mark NTLM as established for the Connection to // avoid preemptive NTLM Utils.setNtlmEstablished(c); return realm; }
public RequestImpl(Request prototype) { if (prototype != null) { this.method = prototype.getMethod(); this.uri = prototype.getUri(); this.address = prototype.getInetAddress(); this.localAddress = prototype.getLocalAddress(); this.headers = new FluentCaseInsensitiveStringsMap(prototype.getHeaders()); this.cookies = new ArrayList<>(prototype.getCookies()); this.byteData = prototype.getByteData(); this.compositeByteData = prototype.getCompositeByteData(); this.stringData = prototype.getStringData(); this.streamData = prototype.getStreamData(); this.bodyGenerator = prototype.getBodyGenerator(); this.formParams = prototype.getFormParams() == null ? null : new ArrayList<>(prototype.getFormParams()); this.parts = prototype.getParts() == null ? null : new ArrayList<>(prototype.getParts()); this.virtualHost = prototype.getVirtualHost(); this.length = prototype.getContentLength(); this.proxyServer = prototype.getProxyServer(); this.realm = prototype.getRealm(); this.file = prototype.getFile(); this.followRedirects = prototype.getFollowRedirect(); this.requestTimeout = prototype.getRequestTimeout(); this.rangeOffset = prototype.getRangeOffset(); this.charset = prototype.getBodyEncoding(); this.connectionPoolPartitioning = prototype.getConnectionPoolPartitioning(); this.nameResolver = prototype.getNameResolver(); } }
if (!request.getHeaders().containsKey(HttpHeaders.Names.CONTENT_TYPE)) contentType = HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED; nettyBody = new NettyMultipartBody(request.getParts(), request.getHeaders(), nettyConfig);
private static Map<String, String> writeOutBoundHeaders(final MultivaluedMap<String, Object> headers, final com.ning.http.client.Request request) { Map<String, String> stringHeaders = HeaderUtils.asStringHeadersSingleValue(headers); for (Map.Entry<String, String> e : stringHeaders.entrySet()) { request.getHeaders().add(e.getKey(), e.getValue()); } return stringHeaders; }
private static Request newRequest(final HttpTransactionContext ctx, final Uri newUri, final HttpResponsePacket response, final Realm realm, boolean asGet) { final Request prototype = ctx.getAhcRequest(); final FluentCaseInsensitiveStringsMap prototypeHeaders = prototype.getHeaders(); prototypeHeaders.remove(Header.Host.toString()); prototypeHeaders.remove(Header.ContentLength.toString()); if (asGet) prototypeHeaders.remove(Header.ContentType.toString()); if (realm != null && realm.getScheme() == AuthScheme.NTLM) { prototypeHeaders.remove(Header.Authorization.toString()); prototypeHeaders.remove(Header.ProxyAuthorization.toString()); } final RequestBuilder builder = new RequestBuilder(prototype); if (asGet) { builder.setMethod("GET"); } builder.setUrl(newUri.toString()); for (String cookieStr : response.getHeaders().values(Header.SetCookie)) { builder.addOrReplaceCookie(CookieDecoder.decode(cookieStr)); } return builder.build(); }
for (Entry<String, List<String>> header : request.getHeaders()) { headers.set(header.getKey(), header.getValue());
public FilterContext filter(FilterContext ctx) throws FilterException { // pass on the x-expect-get and remove the x-redirect // headers if found in the response ctx.getResponseHeaders().getHeaders().get("x-expect-get"); ctx.getRequest().getHeaders().add("x-expect-get", "true"); ctx.getRequest().getHeaders().remove("x-redirect"); return ctx; } }).build();
public FilterContext filter(FilterContext ctx) throws FilterException { // pass on the x-expect-get and remove the x-redirect // headers if found in the response ctx.getResponseHeaders().getHeaders().get("x-expect-post"); ctx.getRequest().getHeaders().add("x-expect-post", "true"); ctx.getRequest().getHeaders().remove("x-redirect"); return ctx; } }).build();