org.apache.http.Header#getElements ( )源码实例Demo

下面列出了org.apache.http.Header#getElements ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: ambari-metrics   文件: AppCookieManager.java
static String getHadoopAuthCookieValue(Header[] headers) {
  if (headers == null) {
    return null;
  }
  for (Header header : headers) {
    HeaderElement[] elements = header.getElements();
    for (HeaderElement element : elements) {
      String cookieName = element.getName();
      if (cookieName.equals(HADOOP_AUTH)) {
        if (element.getValue() != null) {
          String trimmedVal = element.getValue().trim();
          if (!trimmedVal.isEmpty()) {
            return trimmedVal;
          }
        }
      }
    }
  }
  return null;
}
 
源代码2 项目: http-api-invoker   文件: HttpClientResponse.java
@Override
public Map<String, String> getCookies() {
    Header[] headers = response.getAllHeaders();
    if (headers == null || headers.length == 0) {
        return Collections.emptyMap();
    }
    Map<String, String> map = new HashMap<String, String>();
    for (Header header : headers) {
        if (SET_COOKIE.equalsIgnoreCase(header.getName())) {
            for (HeaderElement element : header.getElements()) {
                map.put(element.getName(), element.getValue());
            }
        }
    }
    return map;
}
 
源代码3 项目: IGUANA   文件: HttpWorker.java
public static String getContentTypeVal(Header header) {
    System.out.println("[DEBUG] HEADER: " + header);
    for (HeaderElement el : header.getElements()) {
        NameValuePair cTypePair = el.getParameterByName("Content-Type");

        if (cTypePair != null && !cTypePair.getValue().isEmpty()) {
            return cTypePair.getValue();
        }
    }
    int index = header.toString().indexOf("Content-Type");
    if (index >= 0) {
        String ret = header.toString().substring(index + "Content-Type".length() + 1);
        if (ret.contains(";")) {
            return ret.substring(0, ret.indexOf(";")).trim();
        }
        return ret.trim();
    }
    return "application/sparql-results+json";
}
 
源代码4 项目: android-open-project-demo   文件: OtherUtils.java
public static String getFileNameFromHttpResponse(final HttpResponse response) {
    if (response == null) return null;
    String result = null;
    Header header = response.getFirstHeader("Content-Disposition");
    if (header != null) {
        for (HeaderElement element : header.getElements()) {
            NameValuePair fileNamePair = element.getParameterByName("filename");
            if (fileNamePair != null) {
                result = fileNamePair.getValue();
                // try to get correct encoding str
                result = CharsetUtils.toCharset(result, HTTP.UTF_8, result.length());
                break;
            }
        }
    }
    return result;
}
 
源代码5 项目: lucene-solr   文件: HttpClientUtil.java
@Override
public void process(final HttpResponse response, final HttpContext context)
    throws HttpException, IOException {
  
  HttpEntity entity = response.getEntity();
  Header ceheader = entity.getContentEncoding();
  if (ceheader != null) {
    HeaderElement[] codecs = ceheader.getElements();
    for (int i = 0; i < codecs.length; i++) {
      if (codecs[i].getName().equalsIgnoreCase("gzip")) {
        response
            .setEntity(new GzipDecompressingEntity(response.getEntity()));
        return;
      }
      if (codecs[i].getName().equalsIgnoreCase("deflate")) {
        response.setEntity(new DeflateDecompressingEntity(response
            .getEntity()));
        return;
      }
    }
  }
}
 
源代码6 项目: BigApp_Discuz_Android   文件: OtherUtils.java
public static String getFileNameFromHttpResponse(final HttpResponse response) {
    if (response == null) return null;
    String result = null;
    Header header = response.getFirstHeader("Content-Disposition");
    if (header != null) {
        for (HeaderElement element : header.getElements()) {
            NameValuePair fileNamePair = element.getParameterByName("filename");
            if (fileNamePair != null) {
                result = fileNamePair.getValue();
                // try to get correct encoding str
                result = CharsetUtils.toCharset(result, HTTP.UTF_8, result.length());
                break;
            }
        }
    }
    return result;
}
 
源代码7 项目: BigApp_Discuz_Android   文件: OtherUtils.java
public static Charset getCharsetFromHttpRequest(final HttpRequestBase request) {
    if (request == null) return null;
    String charsetName = null;
    Header header = request.getFirstHeader("Content-Type");
    if (header != null) {
        for (HeaderElement element : header.getElements()) {
            NameValuePair charsetPair = element.getParameterByName("charset");
            if (charsetPair != null) {
                charsetName = charsetPair.getValue();
                break;
            }
        }
    }

    boolean isSupportedCharset = false;
    if (!TextUtils.isEmpty(charsetName)) {
        try {
            isSupportedCharset = Charset.isSupported(charsetName);
        } catch (Throwable e) {
        }
    }

    return isSupportedCharset ? Charset.forName(charsetName) : null;
}
 
源代码8 项目: p4ic4idea   文件: BasicResponse.java
private static Charset getEncoding(HttpEntity entity) {
    Header header = entity.getContentEncoding();
    if (header == null) {
        return Charset.forName("UTF-8");
    }
    for (HeaderElement headerElement : header.getElements()) {
        for (NameValuePair pair : headerElement.getParameters()) {
            if (pair != null && pair.getValue() != null) {
                if (Charset.isSupported(pair.getValue())) {
                    return Charset.forName(pair.getValue());
                }
            }
        }
    }
    return Charset.forName("UTF-8");
}
 
源代码9 项目: neembuu-uploader   文件: NUHttpOptions.java
public Set<String> getAllowedMethods(final HttpResponse response) {
    if (response == null) {
        throw new IllegalArgumentException("HTTP response may not be null");
    }

    HeaderIterator it = response.headerIterator("Allow");
    Set<String> methods = new HashSet<String>();
    while (it.hasNext()) {
        Header header = it.nextHeader();
        HeaderElement[] elements = header.getElements();
        for (HeaderElement element : elements) {
            methods.add(element.getName());
        }
    }
    return methods;
}
 
源代码10 项目: netcdf-java   文件: HTTPMethod.java
/**
 * Get all Request headers as a map of name to list of values.
 * A value may be null.
 *
 * @return Map, may be empty but not null.
 */
public Multimap<String, String> getRequestHeaders() {
  if (this.lastrequest == null)
    return ImmutableMultimap.of();

  ArrayListMultimap<String, String> multimap = ArrayListMultimap.create();
  for (Header header : this.lastrequest.getAllHeaders()) {
    for (HeaderElement element : header.getElements()) {
      multimap.put(element.getName(), element.getValue());
    }
  }
  return multimap;
}
 
源代码11 项目: netcdf-java   文件: HTTPMethod.java
/**
 * Get all Response headers as a map of name to list of values.
 * A value may be null.
 *
 * @return Map, may be empty but not null.
 */
public Multimap<String, String> getResponseHeaders() {
  if (this.lastresponse == null)
    return ImmutableMultimap.of();

  ArrayListMultimap<String, String> multimap = ArrayListMultimap.create();
  for (Header header : this.lastresponse.getAllHeaders()) {
    for (HeaderElement element : header.getElements()) {
      multimap.put(element.getName(), element.getValue());
    }
  }
  return multimap;
}
 
源代码12 项目: netcdf-java   文件: HTTPSession.java
public void process(final HttpResponse response, final HttpContext context) throws HttpException, IOException {
  HttpEntity entity = response.getEntity();
  if (entity != null) {
    Header ceheader = entity.getContentEncoding();
    if (ceheader != null) {
      HeaderElement[] codecs = ceheader.getElements();
      for (HeaderElement h : codecs) {
        if (h.getName().equalsIgnoreCase("gzip")) {
          response.setEntity(new GzipDecompressingEntity(response.getEntity()));
          return;
        }
      }
    }
  }
}
 
源代码13 项目: netcdf-java   文件: HTTPSession.java
public void process(final HttpResponse response, final HttpContext context) throws HttpException, IOException {
  HttpEntity entity = response.getEntity();
  if (entity != null) {
    Header ceheader = entity.getContentEncoding();
    if (ceheader != null) {
      HeaderElement[] codecs = ceheader.getElements();
      for (HeaderElement h : codecs) {
        if (h.getName().equalsIgnoreCase("deflate")) {
          response.setEntity(new DeflateDecompressingEntity(response.getEntity()));
          return;
        }
      }
    }
  }
}
 
源代码14 项目: rawhttp   文件: RawHttpComponentsClient.java
private RawHttpHeaders readHeaders(CloseableHttpResponse response) {
    Header[] allHeaders = response.getAllHeaders();
    RawHttpHeaders.Builder headers = RawHttpHeaders.newBuilder();
    for (Header header : allHeaders) {
        String meta = header.getElements().length > 0 ?
                ";" + Arrays.stream(header.getElements())
                        .flatMap(it -> Arrays.stream(it.getParameters()).map(v -> v.getName() + "=" + v.getValue()))
                        .collect(joining(";")) :
                "";
        headers.with(header.getName(), header.getValue() + meta);
    }
    return headers.build();
}
 
源代码15 项目: mxisd   文件: BasicHttpHandler.java
protected void proxyPost(HttpServerExchange exchange, JsonObject body, CloseableHttpClient client, ClientDnsOverwrite dns) {
    String target = dns.transform(URI.create(exchange.getRequestURL())).toString();
    log.info("Requesting remote: {}", target);
    HttpPost req = RestClientUtils.post(target, GsonUtil.get(), body);

    exchange.getRequestHeaders().forEach(header -> {
        header.forEach(v -> {
            String name = header.getHeaderName().toString();
            if (!StringUtils.startsWithIgnoreCase(name, "content-")) {
                req.addHeader(name, v);
            }
        });
    });

    try (CloseableHttpResponse res = client.execute(req)) {
        exchange.setStatusCode(res.getStatusLine().getStatusCode());
        for (Header h : res.getAllHeaders()) {
            for (HeaderElement el : h.getElements()) {
                exchange.getResponseHeaders().add(HttpString.tryFromString(h.getName()), el.getValue());
            }
        }
        res.getEntity().writeTo(exchange.getOutputStream());
        exchange.endExchange();
    } catch (IOException e) {
        log.warn("Unable to make proxy call: {}", e.getMessage(), e);
        throw new InternalServerError(e);
    }
}
 
源代码16 项目: rdf4j   文件: SPARQLProtocolSession.java
static RDFFormat getContentTypeSerialisation(HttpResponse response) {
	Header[] headers = response.getHeaders("Content-Type");

	Set<RDFFormat> rdfFormats = RDFParserRegistry.getInstance().getKeys();
	if (rdfFormats.isEmpty()) {
		throw new RepositoryException("No tuple RDF parsers have been registered");
	}

	for (Header header : headers) {
		for (HeaderElement element : header.getElements()) {
			// SHACL Validation report Content-Type gets transformed from:
			// application/shacl-validation-report+n-quads => application/n-quads
			// application/shacl-validation-report+ld+json => application/ld+json
			// text/shacl-validation-report+turtle => text/turtle

			String[] split = element.getName().split("\\+");
			StringBuilder serialisation = new StringBuilder(element.getName().split("/")[0] + "/");
			for (int i = 1; i < split.length; i++) {
				serialisation.append(split[i]);
				if (i + 1 < split.length) {
					serialisation.append("+");
				}
			}

			logger.debug("SHACL validation report is serialised as: " + serialisation.toString());

			Optional<RDFFormat> rdfFormat = RDFFormat.matchMIMEType(serialisation.toString(), rdfFormats);

			if (rdfFormat.isPresent()) {
				return rdfFormat.get();
			}
		}
	}

	throw new RepositoryException("Unsupported content-type for SHACL Validation Report: "
			+ Arrays.toString(response.getHeaders("Content-Type")));

}
 
源代码17 项目: mvn-golang   文件: XGoogHashHeader.java
public XGoogHashHeader(@Nonnull @MustNotContainNull final Header[] headers) {
  String md5value = null;
  String crc32value = null;
  String unknownTypeValue = null;
  String unknownValueValue = null;

  boolean dovalid = true;

  try {
    for (final Header header : headers) {
      for (final HeaderElement e : header.getElements()) {
        final String name = e.getName();
        final String value = Hex.encodeHexString(Base64.decodeBase64(e.getValue()));
        if (name.equalsIgnoreCase("md5")) {
          md5value = value;
        } else if (name.equalsIgnoreCase("crc32c")) {
          crc32value = value;
        } else {
          unknownTypeValue = name;
          unknownValueValue = value;
        }
      }
    }
  } catch (ParseException ex) {
    dovalid = false;
  }
  this.md5 = md5value;
  this.crc32c = crc32value;
  this.unknownType = unknownTypeValue;
  this.unknownValue = unknownValueValue;
  this.valid = dovalid;
}
 
源代码18 项目: BigApp_Discuz_Android   文件: URLEncodedUtils.java
/**
 * Returns true if the entity's Content-Type header is
 * <code>application/x-www-form-urlencoded</code>.
 */
public static boolean isEncoded(final HttpEntity entity) {
    Header h = entity.getContentType();
    if (h != null) {
        HeaderElement[] elems = h.getElements();
        if (elems.length > 0) {
            String contentType = elems[0].getName();
            return contentType.equalsIgnoreCase(CONTENT_TYPE);
        } else {
            return false;
        }
    } else {
        return false;
    }
}
 
/**
 * This method creates a cookie for every {@link HeaderElement} of the {@link Header} given as parameter.
 * Then, it adds this newly created cookie into the {@link CookieStore} provided as parameter.
 */
protected void createAndAddCookiesOnStoreForHeader(CookieStore cookieStore, Header header) {
    for (HeaderElement element : header.getElements()) {
        BasicClientCookie cookie = createCookieForHeaderElement(element);
        cookieStore.addCookie(cookie);
    }
}
 
/**
 * Returns true if the entity's Content-Type header is
 * <code>application/x-www-form-urlencoded</code>.
 */
public static boolean isEncoded(final HttpEntity entity) {
    Header h = entity.getContentType();
    if (h != null) {
        HeaderElement[] elems = h.getElements();
        if (elems.length > 0) {
            String contentType = elems[0].getName();
            return contentType.equalsIgnoreCase(CONTENT_TYPE);
        } else {
            return false;
        }
    } else {
        return false;
    }
}