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); } }
<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 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; } }
/** 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); }
/** 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(); }
@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); } }
@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); } }
@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); } }
HttpRequestFactory requestFactory = storage.getRequestFactory(); HttpRequest httpRequest = requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, object)); HttpHeaders requestHeaders = httpRequest.getHeaders(); requestHeaders.set(
GenericUrl url = new GenericUrl(String.format(urlFormat, projectId, datasetId, accessToken)); HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(); HttpRequest request = requestFactory.buildPostRequest(url, content); request.setParser(JSON_FACTORY.createJsonObjectParser());
new GenericUrl(String.format(urlFormat, projectId, datasetId, tableId, accessToken)); HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory(); HttpRequest request = requestFactory.buildPostRequest(url, content); request.setParser(JSON_FACTORY.createJsonObjectParser());
private static String getGoogleIdToken(String jwt) throws Exception { final GenericData tokenRequest = new GenericData().set("grant_type", JWT_BEARER_TOKEN_GRANT_TYPE).set("assertion", jwt); final UrlEncodedContent content = new UrlEncodedContent(tokenRequest); final HttpRequestFactory requestFactory = httpTransport.createRequestFactory(); final HttpRequest request = requestFactory .buildPostRequest(new GenericUrl(OAUTH_TOKEN_URI), content) .setParser(new JsonObjectParser(JacksonFactory.getDefaultInstance())); HttpResponse response; String idToken = null; response = request.execute(); GenericData responseData = response.parseAs(GenericData.class); idToken = (String) responseData.get("id_token"); return idToken; }
public void execute(String webHookUrl, Map<String, Object> payload) throws IOException { String jsonEncodedMessage = new Gson().toJson(payload); HashMap<Object, Object> payloadToSend = Maps.newHashMap(); payloadToSend.put("payload", jsonEncodedMessage); requestFactory.buildPostRequest(new GenericUrl(webHookUrl), new UrlEncodedContent(payloadToSend)) .execute(); } }
public DeployInfo deploy(final DeployRequest... requests) throws IOException { try { String strCont = JSONSerDe.ser(new ArrayList<DeployRequest>(Arrays.asList(requests))); HttpContent content = new StringHttpContent(strCont); HttpRequest request = requestFactory.buildPostRequest(new GenericUrl( qNodes[(int) (Math.random() * qNodes.length)] + "/api/deploy"), content); HttpResponse resp = request.execute(); return JSONSerDe.deSer(asString(resp.getContent()), DeployInfo.class); } catch(JSONSerDeException e) { throw new IOException(e); } }
private HttpResponse executeSessionInitiationRequest(Drive drive, File remoteFile) throws IOException { GenericUrl url = new GenericUrl("https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable"); JsonHttpContent metadataContent = new JsonHttpContent(drive.getJsonFactory(), remoteFile); HttpRequest httpRequest = drive.getRequestFactory().buildPostRequest(url, metadataContent); LOGGER.log(Level.FINE, "Executing session initiation request to URL " + url); return httpRequest.execute(); }
public String postEncodedEntry (String url, Map<String, String> params, boolean needAccessToken) throws DoubanException, IOException { UrlEncodedContent content = new UrlEncodedContent(params); HttpRequest method = requestFactory.buildPostRequest(new GenericUrl(url), content); return httpRequest(method, needAccessToken).parseAsString(); }
public String postMultipartEntry (String url, Map<String, String> params, boolean needAccessToken) throws DoubanException, IOException { UrlEncodedContent uec = new UrlEncodedContent(params); MultipartRelatedContent content = new MultipartRelatedContent(uec); HttpRequest method = requestFactory.buildPostRequest(new GenericUrl(url), content); return httpRequest(method, needAccessToken).parseAsString(); }
/** Create a fake HTTP response object populated with the partContent and the statusCode. */ private HttpResponse getFakeResponse(final int statusCode, final InputStream partContent, List<String> headerNames, List<String> headerValues) throws IOException { HttpRequest request = new FakeResponseHttpTransport( statusCode, partContent, headerNames, headerValues).createRequestFactory() .buildPostRequest(new GenericUrl("http://google.com/"), null); request.setLoggingEnabled(false); request.setThrowExceptionOnExecuteError(false); return request.execute(); }
public <T extends IDoubanObject> int postResponseCodeOnly(String url, T requestObj, boolean needAccessToken) throws DoubanException, IOException { AtomContent content = null; if (requestObj != null) { content = AtomContent.forEntry(DefaultConfigs.DOUBAN_XML_NAMESPACE, requestObj); } else { //Obviously the null content (proved) is not accecptable to Douban's API. Therefore, this empty obj is added for fooling Douban around, they don't care what's inside it anyway. content = AtomContent.forEntry(DefaultConfigs.DOUBAN_XML_NAMESPACE, new DoubanUserObj()); } HttpRequest method = requestFactory.buildPostRequest(new GenericUrl(url), content); HttpResponse response = httpRequest(method, needAccessToken); return response.getStatusCode(); }
public <T, W extends IDoubanObject> W postResponseInJson(String url, T requestObj, Class<W> responseType, boolean needAccessToken) throws DoubanException, IOException { AtomContent content = AtomContent.forEntry(DefaultConfigs.DOUBAN_XML_NAMESPACE, requestObj); HttpRequest method = requestFactory.buildPostRequest(new GenericUrl(url), content); method.setParser(new JsonObjectParser(new JacksonFactory())); return httpRequest(method, needAccessToken).parseAs(responseType); }