/** * Calculate hash value for response and update metadata value (DATA_HASH) * @return hash value */ public String getHash(HttpResponse response) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(response.getResponseAsBytes()); byte[] md5val = md5.digest(); return new String(Base32.encodeBase32(md5val), "UTF-8"); } catch (NoSuchAlgorithmException e) { // Should not happen LOG.info("Error getting MD5 digest, ignored"); } catch (UnsupportedEncodingException e) { // Should not happen LOG.info("Error parsing MD5 string as UTF8"); } return null; }
/** * Calculate hash value for response and update metadata value (DATA_HASH) * @return hash value */ public String getHash(HttpResponse response) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(response.getResponseAsBytes()); byte[] md5val = md5.digest(); return new String(Base32.encodeBase32(md5val), "UTF-8"); } catch (NoSuchAlgorithmException e) { // Should not happen LOG.info("Error getting MD5 digest, ignored"); } catch (UnsupportedEncodingException e) { // Should not happen LOG.info("Error parsing MD5 string as UTF8"); } return null; }
/** * Calculate hash value for response and update metadata value (DATA_HASH) * @return hash value */ public String getHash(HttpResponse response) { try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(response.getResponseAsBytes()); byte[] md5val = md5.digest(); return CharsetUtil.newUtf8String(Base32.encodeBase32(md5val)); } catch (NoSuchAlgorithmException e) { // Should not happen if (LOG.isLoggable(Level.INFO)) { LOG.logp(Level.INFO, classname, "getHash", MessageKeys.ERROR_GETTING_MD5); } } return null; }
@Test public void setResponse() { byte[] someData = "some data".getBytes(); HttpResponse resp = new HttpResponseBuilder() .setResponse(someData) .create(); assertNotSame(someData, resp.getResponseAsBytes()); assertArrayEquals(someData, resp.getResponseAsBytes()); }
@Test public void setResponse() { byte[] someData = "some data".getBytes(); HttpResponse resp = new HttpResponseBuilder() .setResponse(someData) .create(); assertNotSame(someData, resp.getResponseAsBytes()); assertArrayEquals(someData, resp.getResponseAsBytes()); }
@Test public void setResponse() { byte[] someData = "some data".getBytes(); HttpResponse resp = new HttpResponseBuilder() .setResponse(someData) .create(); assertNotSame(someData, resp.getResponseAsBytes()); assertArrayEquals(someData, resp.getResponseAsBytes()); }
@Test public void setResponseNoCopy() { byte[] someData = "some data".getBytes(); HttpResponse resp = new HttpResponseBuilder() .setResponseNoCopy(someData) .create(); assertSame(someData, resp.getResponseAsBytes()); }
@Test public void setResponseNoCopy() { byte[] someData = "some data".getBytes(); HttpResponse resp = new HttpResponseBuilder() .setResponseNoCopy(someData) .create(); assertSame(someData, resp.getResponseAsBytes()); }
@Test public void setResponseNoCopy() { byte[] someData = "some data".getBytes(); HttpResponse resp = new HttpResponseBuilder() .setResponseNoCopy(someData) .create(); assertSame(someData, resp.getResponseAsBytes()); }
@Test public void testHugeBody() throws Exception { byte[] body = new byte[1024*1024]; // 1 MB for (int i=0; i < body.length; ++i) { body[i] = (byte)i; } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("POST") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("POST", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testHugeBody() throws Exception { byte[] body = new byte[1024*1024]; // 1 MB for (int i=0; i < body.length; ++i) { body[i] = (byte)i; } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("POST") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("POST", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testPost_withBody() throws Exception { byte[] body = new byte[5000]; for (int i=0; i < body.length; ++i) { body[i] = (byte)(i % 255); } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("POST") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("POST", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testPut_withBody() throws Exception { byte[] body = new byte[5000]; for (int i=0; i < body.length; ++i) { body[i] = (byte)i; } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("PUT") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("PUT", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testPut_withBody() throws Exception { byte[] body = new byte[5000]; for (int i=0; i < body.length; ++i) { body[i] = (byte)i; } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("PUT") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("PUT", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testHugeBody() throws Exception { byte[] body = new byte[1024*1024]; // 1 MB for (int i=0; i < body.length; ++i) { body[i] = (byte)i; } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("POST") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("POST", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testPost_withBody() throws Exception { byte[] body = new byte[5000]; for (int i=0; i < body.length; ++i) { body[i] = (byte)(i % 255); } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("POST") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("POST", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testPut_withBody() throws Exception { byte[] body = new byte[5000]; for (int i=0; i < body.length; ++i) { body[i] = (byte)i; } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("PUT") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("PUT", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }
@Test public void testPost_withBody() throws Exception { byte[] body = new byte[5000]; for (int i=0; i < body.length; ++i) { body[i] = (byte)(i % 255); } HttpRequest request = new HttpRequest(BASE_URL) .setMethod("POST") .setPostBody(body) .addHeader("content-type", "application/octet-stream"); HttpResponse response = fetcher.fetch(request); assertEquals("POST", response.getHeader("x-method")); ArrayAssert.assertEquals(body, response.getResponseAsBytes()); }