@Override public Response finish() throws IOException { if (request == null) { throw new IllegalStateException("Uploader already closed."); } request.setPayload(body.toByteArray()); HTTPResponse response = service.fetch(request); Response requestorResponse = toRequestorResponse(response); close(); if (progressListener != null) { progressListener.onProgress(request.getPayload().length); } return requestorResponse; } }
HTTPRequestInfo(HTTPRequest req) { method = req.getMethod().toString(); byte[] payload = req.getPayload(); length = payload == null ? -1 : payload.length; url = req.getURL(); h1 = null; h2 = req.getHeaders(); }
@Test void testConvertRequestNoContent() throws IOException { HttpRequest request = HttpRequest.builder().method(HttpMethod.GET).endpoint(endPoint).build(); HTTPRequest gaeRequest = req.apply(request); assert gaeRequest.getPayload() == null; assertEquals(gaeRequest.getHeaders().size(), 1);// user agent assertEquals(gaeRequest.getHeaders().get(0).getName(), HttpHeaders.USER_AGENT); assertEquals(gaeRequest.getHeaders().get(0).getValue(), "jclouds/1.0 urlfetch/1.4.3"); }
@Test void testConvertRequestNoContent() throws IOException { HttpRequest request = HttpRequest.builder().method(HttpMethod.GET).endpoint(endPoint).build(); HTTPRequest gaeRequest = req.apply(request); assert gaeRequest.getPayload() == null; assertEquals(gaeRequest.getHeaders().size(), 1); // user agent assertEquals(gaeRequest.getHeaders().get(0).getName(), HttpHeaders.USER_AGENT); assertEquals(gaeRequest.getHeaders().get(0).getValue(), "jclouds/1.0 urlfetch/1.4.3"); }
private void testHoot(HttpRequest request) throws IOException { request.getPayload().getContentMetadata().setContentType("text/plain"); request.getPayload().getContentMetadata().setContentMD5(new byte[] { 1, 2, 3, 4 }); HTTPRequest gaeRequest = req.apply(request); StringBuilder builder = new StringBuilder(); for (HTTPHeader header : gaeRequest.getHeaders()) { builder.append(header.getName()).append(": ").append(header.getValue()).append("\n"); } assertEquals(builder.toString(), // note content-length is prohibited in gae "User-Agent: jclouds/1.0 urlfetch/1.4.3\nExpect: 100-continue\nContent-Type: text/plain\nContent-MD5: AQIDBA==\n"); assertEquals(new String(gaeRequest.getPayload()), "hoot!"); } }
static HTTPRequest copyRequest(HTTPRequest in) { HTTPRequest out = new HTTPRequest(in.getURL(), in.getMethod(), in.getFetchOptions()); for (HTTPHeader h : in.getHeaders()) { out.addHeader(h); } out.setPayload(in.getPayload()); return out; } }
private void testHoot(HttpRequest request) throws IOException { request.getPayload().getContentMetadata().setContentType("text/plain"); request.getPayload().getContentMetadata().setContentMD5(new byte[16]); HTTPRequest gaeRequest = req.apply(request); StringBuilder builder = new StringBuilder(); for (HTTPHeader header : gaeRequest.getHeaders()) { builder.append(header.getName()).append(": ").append(header.getValue()).append("\n"); } assertEquals(builder.toString(), // note content-length is prohibited in gae "User-Agent: jclouds/1.0 urlfetch/1.4.3\n" + "Expect: 100-continue\n" + "Content-Type: text/plain\n" + "Content-MD5: AAAAAAAAAAAAAAAAAAAAAA==\n"); assertEquals(new String(gaeRequest.getPayload()), "hoot!"); } }
@Test public void testGetters() throws Exception { HTTPRequest request = new HTTPRequest(getFetchUrl(), HTTPMethod.PATCH, FetchOptions.Builder.withDefaults()); request.addHeader(new HTTPHeader("foo", "bar")); request.setPayload("qwerty".getBytes()); Assert.assertEquals(getFetchUrl(), request.getURL()); Assert.assertEquals(HTTPMethod.PATCH, request.getMethod()); Assert.assertNotNull(request.getFetchOptions()); Assert.assertNotNull(request.getHeaders()); Assert.assertEquals(1, request.getHeaders().size()); assertEquals(new HTTPHeader("foo", "bar"), request.getHeaders().get(0)); Assert.assertArrayEquals("qwerty".getBytes(), request.getPayload()); }