public static String key(HttpUrl url) { return ByteString.encodeUtf8(url.toString()).md5().hex(); }
public static String key(HttpUrl url) { return ByteString.encodeUtf8(url.toString()).md5().hex(); }
Call httpCall(Operation operation, CacheHeaders cacheHeaders, boolean writeQueryDocument) throws IOException { RequestBody requestBody = RequestBody.create(MEDIA_TYPE, httpRequestBody(operation, scalarTypeAdapters, writeQueryDocument)); Request.Builder requestBuilder = new Request.Builder() .url(serverUrl) .post(requestBody) .header(HEADER_ACCEPT_TYPE, ACCEPT_TYPE) .header(HEADER_CONTENT_TYPE, CONTENT_TYPE) .header(HEADER_APOLLO_OPERATION_ID, operation.operationId()) .header(HEADER_APOLLO_OPERATION_NAME, operation.name().name()) .tag(operation.operationId()); if (cachePolicy.isPresent()) { HttpCachePolicy.Policy cachePolicy = this.cachePolicy.get(); boolean skipCacheHttpResponse = "true".equalsIgnoreCase(cacheHeaders.headerValue( ApolloCacheHeaders.DO_NOT_STORE)); String cacheKey = httpRequestBody(operation, scalarTypeAdapters, true).md5().hex(); requestBuilder = requestBuilder .header(HttpCache.CACHE_KEY_HEADER, cacheKey) .header(HttpCache.CACHE_FETCH_STRATEGY_HEADER, cachePolicy.fetchStrategy.name()) .header(HttpCache.CACHE_EXPIRE_TIMEOUT_HEADER, String.valueOf(cachePolicy.expireTimeoutMs())) .header(HttpCache.CACHE_EXPIRE_AFTER_READ_HEADER, Boolean.toString(cachePolicy.expireAfterRead)) .header(HttpCache.CACHE_PREFETCH_HEADER, Boolean.toString(prefetch)) .header(HttpCache.CACHE_DO_NOT_STORE, Boolean.toString(skipCacheHttpResponse)); } return httpCallFactory.newCall(requestBuilder.build()); }
System.out.println(" md5: " + byteString.md5().hex()); System.out.println(" sha1: " + byteString.sha1().hex()); System.out.println(" sha256: " + byteString.sha256().hex());
@Test public void byteStringMd5() { assertEquals(MD5_abc, ByteString.encodeUtf8("abc").md5()); }
@Override public ByteString md5() { return toByteString().md5(); }
@Override public String toString() { if (data.length == 0) { return "ByteString[size=0]"; } if (data.length <= 16) { return String.format("ByteString[size=%s data=%s]", data.length, hex()); } return String.format("ByteString[size=%s md5=%s]", data.length, md5().hex()); }
public static String cacheKey(RequestBody requestBody) { Buffer hashBuffer = new Buffer(); try { requestBody.writeTo(hashBuffer); } catch (IOException e) { // should never happen throw new RuntimeException(e); } return hashBuffer.readByteString().md5().hex(); } }
public static String key(HttpUrl url) { return ByteString.encodeUtf8(url.toString()).md5().hex(); }
public static String cacheKey(RequestBody requestBody) { Buffer hashBuffer = new Buffer(); try { requestBody.writeTo(hashBuffer); } catch (IOException e) { // should never happen throw new RuntimeException(e); } return hashBuffer.readByteString().md5().hex(); } }
public static String key(HttpUrl url) { return ByteString.encodeUtf8(url.toString()).md5().hex(); }
/** * 保存 */ public synchronized <T> boolean save(String key, T value) { String cacheKey = ByteString.of(key.getBytes()).md5().hex(); HttpLog.d("saveCache key=" + cacheKey); return disk.save(cacheKey, value); }
/** * 读取 */ public synchronized <T> T load(Type type, String key, long time) { String cacheKey = ByteString.of(key.getBytes()).md5().hex(); HttpLog.d("loadCache key=" + cacheKey); if (disk != null) { T result = disk.load(type, cacheKey, time); if (result != null) { return result; } } return null; }
/** * 删除缓存 * * @param key */ public synchronized boolean remove(String key) { String cacheKey = ByteString.of(key.getBytes()).md5().hex(); HttpLog.d("removeCache key=" + cacheKey); if (disk != null) { return disk.remove(cacheKey); } return true; }
/** * 是否包含 * * @param key * @return */ public synchronized boolean containsKey(String key) { String cacheKey = ByteString.of(key.getBytes()).md5().hex(); HttpLog.d("containsCache key=" + cacheKey); if (disk != null) { if (disk.containsKey(cacheKey)) { return true; } } return false; }