static <T> T makePostRequest(HttpTransport httpTransport, String url, HttpContent httpContent, Class<T> clazz) throws IOException { HttpRequestFactory factory = httpTransport.createRequestFactory(); HttpRequest postRequest = factory.buildPostRequest(new GenericUrl(url), httpContent); HttpResponse response = postRequest.execute(); int statusCode = response.getStatusCode(); if (statusCode != 200) { throw new IOException( "Bad status code: " + statusCode + " error: " + response.getStatusMessage()); } String result = CharStreams .toString(new InputStreamReader(response.getContent(), Charsets.UTF_8)); return new ObjectMapper().readValue(result, clazz); } }
private <T> T makeGetRequest(String url, Optional<Map<String, String>> parameters, Class<T> clazz) throws IOException { HttpRequestFactory requestFactory = httpTransport.createRequestFactory(); HttpRequest getRequest = requestFactory .buildGetRequest(new GenericUrl(url + "?" + generateParamsString(parameters))); HttpResponse response = getRequest.execute(); int statusCode = response.getStatusCode(); if (statusCode != 200) { throw new IOException( "Bad status code: " + statusCode + " error: " + response.getStatusMessage()); } String result = CharStreams .toString(new InputStreamReader(response.getContent(), Charsets.UTF_8)); return objectMapper.readValue(result, clazz); }
private String getToken(String frob) throws IOException { URL signedUrl = signatureGenerator.getSignature( GET_TOKEN_URL, ImmutableMap.of("frob", frob, "method", GET_TOKEN_METHOD)); HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(); HttpRequest getRequest = requestFactory.buildGetRequest(new GenericUrl(signedUrl)); HttpResponse response = getRequest.execute(); int statusCode = response.getStatusCode(); if (statusCode != 200) { throw new IOException( "Bad status code: " + statusCode + " error: " + response.getStatusMessage()); } AuthElement authElement = xmlMapper.readValue(response.getContent(), AuthElement.class); Preconditions.checkState(authElement.stat.equals("ok"), "state must be ok: %s", authElement); Preconditions.checkState( !Strings.isNullOrEmpty(authElement.auth.token), "token must not be empty", authElement); return authElement.auth.token; } }
private <T> T makeRequest(String url, Class<T> clazz, TokensAndUrlAuthData authData) throws IOException { HttpRequestFactory requestFactory = httpTransport.createRequestFactory(); HttpRequest getRequest = requestFactory.buildGetRequest( new GenericUrl(url + "?access_token=" + authData.getAccessToken())); HttpResponse response = getRequest.execute(); int statusCode = response.getStatusCode(); if (statusCode != 200) { throw new IOException( "Bad status code: " + statusCode + " error: " + response.getStatusMessage()); } String result = CharStreams.toString(new InputStreamReader(response.getContent(), Charsets.UTF_8)); return objectMapper.readValue(result, clazz); } }
<T> T makePostRequest(String url, Optional<Map<String, String>> parameters, HttpContent httpContent, Class<T> clazz) throws IOException { HttpRequestFactory requestFactory = httpTransport.createRequestFactory(); HttpRequest postRequest = requestFactory .buildPostRequest(new GenericUrl(url + "?" + generateParamsString(parameters)), httpContent); HttpResponse response = postRequest.execute(); int statusCode = response.getStatusCode(); if (statusCode != 200) { throw new IOException( "Bad status code: " + statusCode + " error: " + response.getStatusMessage()); } String result = CharStreams .toString(new InputStreamReader(response.getContent(), Charsets.UTF_8)); if (clazz.isAssignableFrom(String.class)) { return (T) result; } else { return objectMapper.readValue(result, clazz); } }
private void delete(String url) { HttpHeaders headers = new HttpHeaders(); headers.setAccept("text/turtle"); headers.setCookie(authCookie); try { HttpRequest deleteRequest = factory.buildDeleteRequest(new GenericUrl(url)) .setThrowExceptionOnExecuteError(false); deleteRequest.setHeaders(headers); validateResponse(deleteRequest.execute(), 200); logger.debug("Deleted: {}", url); } catch (IOException e) { throw new IllegalStateException("Couldn't delete: " + url, e); } }
private String requestRaw(String path) throws IOException { HttpRequest getRequest = TRANSPORT.createRequestFactory().buildGetRequest( new GenericUrl(baseUrl + path)); HttpHeaders headers = new HttpHeaders(); headers.setAuthorization("Bearer " + accessToken); getRequest.setHeaders(headers); HttpResponse response = getRequest.execute(); validateResponse(getRequest, response, 200); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); IOUtils.copy(response.getContent(), byteArrayOutputStream, true); return byteArrayOutputStream.toString(); }
private <T extends RememberTheMilkResponse> T makeRequest( Map<String, String> parameters, Class<T> dataClass) throws IOException { URL signedUrl = signatureGenerator.getSignature(BASE_URL, parameters); HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(); HttpRequest getRequest = requestFactory.buildGetRequest(new GenericUrl(signedUrl)); HttpResponse response = getRequest.execute(); int statusCode = response.getStatusCode(); if (statusCode != 200) { throw new IOException( "Bad status code: " + statusCode + " error: " + response.getStatusMessage()); } T parsedResponse = xmlMapper.readValue(response.getContent(), dataClass); if (parsedResponse.error != null) { throw new IOException( "Error making call to " + signedUrl + " error: " + parsedResponse.error); } return parsedResponse; }
private String makeCall(HttpTransport transport) throws IOException { HttpRequest get = transport.createRequestFactory() .buildPostRequest(new GenericUrl(INRPUT_LOGIN_SERVER), null) .setFollowRedirects(false) .setThrowExceptionOnExecuteError(false); HttpResponse response = get.execute(); if (response.getStatusCode() != 302) { throw new IOException("Unexpected return code: " + response.getStatusCode() + "\nMessage:\n" + response.getStatusMessage()); } String cookieValue = response.getHeaders().getFirstHeaderStringValue("set-cookie"); if (Strings.isNullOrEmpty(cookieValue)) { throw new IOException("Couldn't extract cookie value from headers: " + response.getHeaders()); } return cookieValue; } }
/** * Parses the contents of a URL to produce an RDF model. */ public Model getModel(String url) throws IOException { HttpRequestFactory factory = TRANSPORT.createRequestFactory(); HttpRequest rootGetRequest = factory.buildGetRequest( new GenericUrl(url)); HttpHeaders headers = new HttpHeaders(); headers.setCookie(authCookie); headers.setAccept("text/turtle"); rootGetRequest.setHeaders(headers); HttpResponse response = rootGetRequest.execute(); if (response.getStatusCode() != 200) { throw new IOException("Unexpected return code: " + response.getStatusCode() + "\nMessage:\n" + response.getStatusMessage()); } StringWriter writer = new StringWriter(); IOUtils.copy(response.getContent(), writer, "UTF-8"); String fixedString = fixProblematicPeriods(writer.toString()); Model defaultModel = ModelFactory.createDefaultModel(); return defaultModel.read( new StringReader(fixedString), url, "TURTLE"); }
/** Posts an RDF model to a Solid server. **/ public String postContent( String url, String slug, String type, Model model) throws IOException { StringWriter stringWriter = new StringWriter(); model.write(stringWriter, "TURTLE"); HttpContent content = new ByteArrayContent("text/turtle", stringWriter.toString().getBytes()); HttpRequest postRequest = factory.buildPostRequest( new GenericUrl(url), content); HttpHeaders headers = new HttpHeaders(); headers.setCookie(authCookie); headers.set("Link", "<" + type + ">; rel=\"type\""); headers.set("Slug", slug); postRequest.setHeaders(headers); HttpResponse response = postRequest.execute(); validateResponse(response, 201); return response.getHeaders().getLocation(); }
private HttpResponse createHttpResponseWithHeader(final Multimap<String, String> headers) throws Exception { HttpTransport mockHttpTransport = new MockHttpTransport() { @Override public LowLevelHttpRequest buildRequest(String method, String url) throws IOException { return new MockLowLevelHttpRequest() { @Override public LowLevelHttpResponse execute() throws IOException { MockLowLevelHttpResponse response = new MockLowLevelHttpResponse(); for (Map.Entry<String, String> entry : headers.entries()) { response.addHeader(entry.getKey(), entry.getValue()); } return response; } }; } }; HttpRequest request = mockHttpTransport.createRequestFactory().buildGetRequest(HttpTesting.SIMPLE_GENERIC_URL); return request.execute(); } }
/** Posts a new status for the user, initially marked as private.**/ public void postStatus(String content, String idempotencyKey) throws IOException { ImmutableMap<String, String> formParams = ImmutableMap.of( "status", content, // Default everything to private to avoid a privacy incident "visibility", "private" ); UrlEncodedContent urlEncodedContent = new UrlEncodedContent(formParams); HttpRequest postRequest = TRANSPORT.createRequestFactory() .buildPostRequest( new GenericUrl(baseUrl + POST_URL), urlEncodedContent) .setThrowExceptionOnExecuteError(false); HttpHeaders headers = new HttpHeaders(); headers.setAuthorization("Bearer " + accessToken); if (!Strings.isNullOrEmpty(idempotencyKey)) { // This prevents the same post from being posted twice in the case of network errors headers.set("Idempotency-Key", idempotencyKey); } postRequest.setHeaders(headers); HttpResponse response = postRequest.execute(); validateResponse(postRequest, response, 200); }
/** * Sends the request. * * @param httpMethod the HTTP request method * @param request the request to send * @return the response to the sent request * @throws IOException if building the HTTP request fails. */ public Response send(String httpMethod, Request request) throws IOException { Preconditions.checkState(httpResponse == null, "Connection can send only one request"); HttpRequest httpRequest = requestFactory .buildRequest(httpMethod, url, request.getHttpContent()) .setHeaders(request.getHeaders()); if (request.getHttpTimeout() != null) { httpRequest.setConnectTimeout(request.getHttpTimeout()); httpRequest.setReadTimeout(request.getHttpTimeout()); } httpResponse = httpRequest.execute(); return new Response(httpResponse); } }
@Override public List<List<DetectionsResourceItems>> detect(List<String> texts) { try { Map<String, ?> content = ImmutableMap.of("q", texts); HttpRequest httpRequest = translate .getRequestFactory() .buildPostRequest( buildTargetUrl("detect"), new JsonHttpContent(translate.getJsonFactory(), content)) .setParser(translate.getObjectParser()); List<List<DetectionsResourceItems>> detections = httpRequest.execute().parseAs(DetectionsListResponse.class).getDetections(); // TODO use REST apiary as soon as it supports POST // List<List<DetectionsResourceItems>> detections = // // translate.detections().list(texts).setKey(options.getApiKey()).execute().getDetections(); return detections != null ? detections : ImmutableList.<List<DetectionsResourceItems>>of(); } catch (IOException ex) { throw translate(ex); } }
HttpResponse response = null; try { response = httpRequest.execute(); code = response.getStatusCode(); message = response.getStatusMessage();
@Override public List<LanguagesResource> listSupportedLanguages(Map<Option, ?> optionMap) { try { Map<String, ?> content = ImmutableMap.of( "target", firstNonNull( Option.TARGET_LANGUAGE.getString(optionMap), options.getTargetLanguage())); HttpRequest httpRequest = translate .getRequestFactory() .buildPostRequest( buildTargetUrl("languages"), new JsonHttpContent(translate.getJsonFactory(), content)) .setParser(translate.getObjectParser()); List<LanguagesResource> languages = httpRequest.execute().parseAs(LanguagesListResponse.class).getLanguages(); // TODO use REST apiary as soon as it supports POST // List<LanguagesResource> languages = translate.languages() // .list() // .setKey(options.getApiKey()) // .setTarget( // firstNonNull(TARGET_LANGUAGE.getString(optionMap), options.getTargetLanguage())) // .execute().getLanguages(); return languages != null ? languages : ImmutableList.<LanguagesResource>of(); } catch (IOException ex) { throw translate(ex); } }
private static String getAppEngineProjectIdFromMetadataServer() throws IOException { String metadata = "http://metadata.google.internal"; String projectIdURL = "/computeMetadata/v1/project/project-id"; GenericUrl url = new GenericUrl(metadata + projectIdURL); HttpTransport netHttpTransport = new NetHttpTransport(); HttpRequestFactory requestFactory = netHttpTransport.createRequestFactory(); HttpRequest request = requestFactory .buildGetRequest(url) .setConnectTimeout(500) .setReadTimeout(500) .setHeaders(new HttpHeaders().set("Metadata-Flavor", "Google")); HttpResponse response = request.execute(); return headerContainsMetadataFlavor(response) ? response.parseAsString() : null; }
@Override public String open(Job loadJob) { try { String builder = BASE_RESUMABLE_URI + options.getProjectId() + "/jobs"; GenericUrl url = new GenericUrl(builder); url.set("uploadType", "resumable"); JsonFactory jsonFactory = bigquery.getJsonFactory(); HttpRequestFactory requestFactory = bigquery.getRequestFactory(); HttpRequest httpRequest = requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, loadJob)); httpRequest.getHeaders().set("X-Upload-Content-Value", "application/octet-stream"); HttpResponse response = httpRequest.execute(); return response.getHeaders().getLocation(); } catch (IOException ex) { throw translate(ex); } }
base64.encode(hashFunction.hashBytes(base64.decode(key)).asBytes())); HttpResponse response = httpRequest.execute(); if (response.getStatusCode() != 200) { GoogleJsonError error = new GoogleJsonError();