@Override public Map<String, String> getHttpHeaders() { return source.getHttpHeaders(); }
@Override public Map<String, String> getHttpHeaders() { return source.getHttpHeaders(); }
@Override public Map<String, String> getHttpHeaders() { // revisit record had no HTTP headers in early days. if (headersResource.getRecordLength() == 0) return payloadResource.getHttpHeaders(); else return headersResource.getHttpHeaders(); } @Override
@Override public Map<String, String> getHttpHeaders() { // revisit record had no HTTP headers in early days. if (headersResource.getRecordLength() == 0) return payloadResource.getHttpHeaders(); else return headersResource.getHttpHeaders(); } @Override
public String getHeader(String headerName) { Map<String, String> httpHeaders = getHttpHeaders(); if (httpHeaders == null) { return null; } Iterator<String> keys = httpHeaders.keySet().iterator(); String headerUp = headerName.toUpperCase(); while (keys.hasNext()) { String key = keys.next(); if (key.toUpperCase().equals(headerUp)) { return httpHeaders.get(key); } } return null; }
public String getHeader(String headerName) { Map<String, String> httpHeaders = getHttpHeaders(); if (httpHeaders == null) { return null; } Iterator<String> keys = httpHeaders.keySet().iterator(); String headerUp = headerName.toUpperCase(); while (keys.hasNext()) { String key = keys.next(); if (key.toUpperCase().equals(headerUp)) { return httpHeaders.get(key); } } return null; }
@Override public String sniff(Resource resource) { Map<String, String> httpHeaders = resource.getHttpHeaders(); for (Entry<String, String> e : httpHeaders.entrySet()) { String headerKey = e.getKey(); if (headerKey.equalsIgnoreCase(HTTP_CONTENT_TYPE_HEADER)) { String ctype = e.getValue(); String charsetName = contentTypeToCharset(ctype); return charsetName; } } return null; } }
@Override public String sniff(Resource resource) { Map<String, String> httpHeaders = resource.getHttpHeaders(); for (Entry<String, String> e : httpHeaders.entrySet()) { String headerKey = e.getKey(); if (headerKey.equalsIgnoreCase(HTTP_CONTENT_TYPE_HEADER)) { String ctype = e.getValue(); String charsetName = contentTypeToCharset(ctype); return charsetName; } } return null; } }
/** * @param resource * @param result * @param uriConverter * @param filter * @return A HashMap containing the HTTP headers extracted from the Resource. */ public static Map<String,String> processHeaders(Resource resource, CaptureSearchResult result, ResultURIConverter uriConverter, HttpHeaderProcessor filter) { HashMap<String,String> output = new HashMap<String,String>(); // copy all HTTP headers, as-is, sending "" instead of nulls. Map<String,String> headers = resource.getHttpHeaders(); if (headers != null) { Iterator<String> itr = headers.keySet().iterator(); while(itr.hasNext()) { String key = itr.next(); String value = headers.get(key); value = (value == null) ? "" : value; filter.filter(output, key, value, uriConverter, result); } } return output; }
/** * @param resource * @param result * @param uriConverter * @param filter * @return A HashMap containing the HTTP headers extracted from the Resource. */ public static Map<String,String> processHeaders(Resource resource, CaptureSearchResult result, ResultURIConverter uriConverter, HttpHeaderProcessor filter) { HashMap<String,String> output = new HashMap<String,String>(); // copy all HTTP headers, as-is, sending "" instead of nulls. Map<String,String> headers = resource.getHttpHeaders(); if (headers != null) { Iterator<String> itr = headers.keySet().iterator(); while(itr.hasNext()) { String key = itr.next(); String value = headers.get(key); value = (value == null) ? "" : value; filter.filter(output, key, value, uriConverter, result); } } return output; }
Map<String,String> headers = res.getHttpHeaders(); Iterator<String> keys = headers.keySet().iterator(); while(keys.hasNext()) {
Map<String,String> headers = res.getHttpHeaders(); Iterator<String> keys = headers.keySet().iterator(); while(keys.hasNext()) {
Map<String, String> headers = headersResource.getHttpHeaders();
Map<String, String> headers = headersResource.getHttpHeaders();
resource, result, uriConverter, httpHeaderProcessor); String origLength = HttpHeaderOperation.getContentLength(resource.getHttpHeaders()); if (origLength != null) { HttpHeaderOperation.replaceHeader(headers, HttpHeaderOperation.HTTP_LENGTH_HEADER, origLength);
resource, result, uriConverter, httpHeaderProcessor); String origLength = HttpHeaderOperation.getContentLength(resource.getHttpHeaders()); if (origLength != null) { HttpHeaderOperation.replaceHeader(headers, HttpHeaderOperation.HTTP_LENGTH_HEADER, origLength);
httpHeaders.putAll(origResource.getHttpHeaders());
/** * resource record, typically used for archiving ftp fetches. * @throws Exception */ public void testResourceRecord() throws Exception { final String ct = "text/plain"; final byte[] block = "blahblahblah\n".getBytes(); WARCRecordInfo recinfo = new TestWARCRecordInfo(block); recinfo.setType(WARCRecordType.resource); recinfo.setUrl("ftp://ftp.example.com/afile.txt"); recinfo.setMimetype(ct); Resource res = createResource(recinfo); res.parseHeaders(); int scode = res.getStatusCode(); assertEquals("statusCode", 200, scode); Map<String, String> headers = res.getHttpHeaders(); assertNotNull("headers", headers); assertEquals("content-type", ct, res.getHeader("Content-Type")); // must have Date header, in HTTP Date format. String date = res.getHeader("Date"); assertNotNull("has date header", date); new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH).parse(date); res.close(); }
/** * Create a test revisit record referring Resource {@code revisited}. * @param timestamp CDX-style 14digit timestamp * @param revisited Capture being revisited (must be a {@link WarcResource} * or {@code ClassCastException} will be the result) * @param withHeader {@code true} unless you want to emulate old implementation * where revisit record had no HTTP headers. * @return new Resource object * @throws IOException for unexpected I/O error building payload */ public static Resource createTestRevisitResource(String timestamp, Resource revisited, boolean withHeader) throws IOException { String clen = revisited.getHttpHeaders().get("Content-Length"); int len = clen != null ? Integer.parseInt(clen) : -1; TestWARCRecordInfo recinfo = TestWARCRecordInfo .createRevisitHttpResponse("text/html", len, withHeader); recinfo.setCreate14DigitDateFromDT14(timestamp); ArchiveRecordHeader warcHeader = ((WarcResource)revisited).getWarcHeaders(); recinfo.addExtraHeader("WARC-Refers-To-Target-URI", warcHeader.getUrl()); recinfo.addExtraHeader("WARC-Refers-To-Date", warcHeader.getDate()); recinfo.setUrl(warcHeader.getUrl()); TestWARCReader ar = new TestWARCReader(recinfo); WARCRecord rec = ar.get(0); WarcResource resource = new WarcResource(rec, ar); resource.parseHeaders(); return resource; }
assertEquals("status code", 0, scode); Map<String, String> headers = res.getHttpHeaders();