List of usage examples for org.apache.http.client.methods HttpRequestBase getMethod
public abstract String getMethod();
From source file:org.dasein.cloud.aws.storage.GlacierMethod.java
private ClientAndResponse invokeInternal() throws InternalException, CloudException { if (wire.isDebugEnabled()) { wire.debug(""); wire.debug("----------------------------------------------------------------------------------"); }// ww w.ja va2 s.co m try { final String url = getUrlWithParameters(); final String host; try { host = new URI(url).getHost(); } catch (URISyntaxException e) { throw new InternalException(e); } final HttpRequestBase method = action.getMethod(url); final HttpClient client = provider.getClient(); final String accessId; final String secret; try { accessId = new String(provider.getContext().getAccessPublic(), "utf-8"); secret = new String(provider.getContext().getAccessPrivate(), "utf-8"); } catch (UnsupportedEncodingException e) { throw new InternalException(e); } headers.put(AWSCloud.P_AWS_DATE, provider.getV4HeaderDate(null)); headers.put("x-amz-glacier-version", API_VERSION); headers.put("host", host); final String v4Authorization = provider.getV4Authorization(accessId, secret, method.getMethod(), url, SERVICE_ID, headers, getRequestBodyHash()); for (Map.Entry<String, String> entry : headers.entrySet()) { method.addHeader(entry.getKey(), entry.getValue()); } method.addHeader(AWSCloud.P_CFAUTH, v4Authorization); if (bodyText != null) { try { ((HttpEntityEnclosingRequestBase) method).setEntity(new StringEntity(bodyText)); } catch (UnsupportedEncodingException e) { throw new InternalException(e); } } if (wire.isDebugEnabled()) { wire.debug("[" + url + "]"); wire.debug(method.getRequestLine().toString()); for (Header header : method.getAllHeaders()) { wire.debug(header.getName() + ": " + header.getValue()); } wire.debug(""); if (bodyText != null) { try { wire.debug(EntityUtils.toString(((HttpEntityEnclosingRequestBase) method).getEntity())); } catch (IOException ignore) { } wire.debug(""); } } HttpResponse httpResponse; try { httpResponse = client.execute(method); } catch (IOException e) { throw new CloudException(e); } if (wire.isDebugEnabled()) { wire.debug(httpResponse.getStatusLine().toString()); for (Header header : httpResponse.getAllHeaders()) { wire.debug(header.getName() + ": " + header.getValue()); } wire.debug(""); } int status = httpResponse.getStatusLine().getStatusCode(); if (status >= 400) { throw getGlacierException(httpResponse); } else { return new ClientAndResponse(client, httpResponse); } } finally { if (wire.isDebugEnabled()) { wire.debug("----------------------------------------------------------------------------------"); wire.debug(""); } } }
From source file:com.k42b3.neodym.oauth.Oauth.java
@SuppressWarnings("unchecked") public void signRequest(HttpRequestBase request) throws Exception { // add values HashMap<String, String> values = new HashMap<String, String>(); HashMap<String, String> auth; values.put("oauth_consumer_key", this.provider.getConsumerKey()); values.put("oauth_token", this.token); values.put("oauth_signature_method", provider.getMethod()); values.put("oauth_timestamp", this.getTimestamp()); values.put("oauth_nonce", this.getNonce()); auth = (HashMap<String, String>) values.clone(); // add get vars to values values.putAll(parseQuery(request.getURI().getQuery())); // build base string String baseString = this.buildBaseString(request.getMethod(), request.getURI().toString(), values); // get signature SignatureInterface signature = this.getSignature(); if (signature == null) { throw new Exception("Invalid signature method"); }// w w w . java 2s.c o m // build signature auth.put("oauth_signature", signature.build(baseString, provider.getConsumerSecret(), this.tokenSecret)); // add header to request request.addHeader("Authorization", "OAuth realm=\"neodym\", " + this.buildAuthString(auth)); }
From source file:com.getblimp.api.client.Blimp.java
private HttpRequestBase createRequestMethod(String url, HttpMethods method) throws Exception { logger.fine("Entering Blimp.createRequestMethod"); logger.finer("HTTP method: " + method.toString()); HttpRequestBase tmpRequest; switch (method) { case GET://w w w . j av a 2s .c om tmpRequest = new HttpGet(url); break; case POST: tmpRequest = new HttpPost(url); break; case PUT: tmpRequest = new HttpPut(url); break; case PATCH: tmpRequest = new HttpPatch(url); break; default: throw new Exception("Wrong HTTP method."); } logger.finer("Adding request headers"); tmpRequest.addHeader(resourceBundle.getString(BlimpHttpHeaders.AUTHORIZATION.getValue()), "ApiKey " + this.userName + ":" + this.apiKey); tmpRequest.addHeader(resourceBundle.getString(BlimpHttpHeaders.APPID.getValue()), this.applicationId); tmpRequest.addHeader(resourceBundle.getString(BlimpHttpHeaders.APPSECRET.getValue()), this.applicationSecret); logger.finer("Created request method: " + tmpRequest.getMethod()); return tmpRequest; }
From source file:net.elasticgrid.rackspace.common.RackspaceConnection.java
/** * Make a http request and process the response. This method also performs automatic retries. * * @param request the HTTP method to use (GET, POST, DELETE, etc) * @param respType the class that represents the desired/expected return type * @return the unmarshalled entity//from w w w. ja v a 2 s . c o m * @throws RackspaceException * @throws IOException if there is an I/O exception * @throws HttpException if there is an HTTP exception * @throws JiBXException if the result can't be unmarshalled */ @SuppressWarnings("unchecked") protected <T> T makeRequest(HttpRequestBase request, Class<T> respType) throws HttpException, IOException, JiBXException, RackspaceException { if (!authenticated) authenticate(); // add auth params, and protocol specific headers request.addHeader("X-Auth-Token", getAuthToken()); // set accept and content-type headers request.setHeader("Accept", "application/xml; charset=UTF-8"); request.setHeader("Accept-Encoding", "gzip"); request.setHeader("Content-Type", "application/xml; charset=UTF-8"); // send the request T result = null; boolean done = false; int retries = 0; boolean doRetry = false; RackspaceException error = null; do { HttpResponse response = null; if (retries > 0) logger.log(Level.INFO, "Retry #{0}: querying via {1} {2}", new Object[] { retries, request.getMethod(), request.getURI() }); else logger.log(Level.INFO, "Querying via {0} {1}", new Object[] { request.getMethod(), request.getURI() }); if (logger.isLoggable(Level.FINEST) && request instanceof HttpEntityEnclosingRequestBase) { HttpEntity entity = ((HttpEntityEnclosingRequestBase) request).getEntity(); if (entity instanceof EntityTemplate) { EntityTemplate template = (EntityTemplate) entity; ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream(); template.writeTo(baos); logger.log(Level.FINEST, "Request body:\n{0}", baos.toString()); } finally { IOUtils.closeQuietly(baos); } } } InputStream entityStream = null; HttpEntity entity = null; if (logger.isLoggable(Level.FINEST)) { response = getHttpClient().execute(request); entity = response.getEntity(); try { entityStream = entity.getContent(); logger.log(Level.FINEST, "Response body on " + request.getURI() + " via " + request.getMethod() + ":\n" + IOUtils.toString(entityStream)); } finally { IOUtils.closeQuietly(entityStream); } } response = getHttpClient().execute(request); int statusCode = response.getStatusLine().getStatusCode(); entity = response.getEntity(); switch (statusCode) { case 200: case 202: case 203: try { entityStream = entity.getContent(); IBindingFactory bindingFactory = BindingDirectory.getFactory(respType); IUnmarshallingContext unmarshallingCxt = bindingFactory.createUnmarshallingContext(); result = (T) unmarshallingCxt.unmarshalDocument(entityStream, "UTF-8"); } finally { entity.consumeContent(); IOUtils.closeQuietly(entityStream); } done = true; break; case 503: // service unavailable logger.log(Level.WARNING, "Service unavailable on {0} via {1}. Will retry in {2} seconds.", new Object[] { request.getURI(), request.getMethod(), Math.pow(2.0, retries + 1) }); doRetry = true; break; case 401: // unauthorized logger.warning("Not authenticated or authentication token expired. Authenticating..."); authenticate(); doRetry = true; break; case 417: throw new RackspaceException(new IllegalArgumentException("Some parameters are invalid!")); // TODO: temp hack 'til Rackspace API is fixed! case 400: case 500: default: try { entityStream = entity.getContent(); IBindingFactory bindingFactory = BindingDirectory.getFactory(CloudServersAPIFault.class); IUnmarshallingContext unmarshallingCxt = bindingFactory.createUnmarshallingContext(); CloudServersAPIFault fault = (CloudServersAPIFault) unmarshallingCxt .unmarshalDocument(entityStream, "UTF-8"); done = true; throw new RackspaceException(fault.getCode(), fault.getMessage(), fault.getDetails()); } catch (JiBXException e) { response = getHttpClient().execute(request); entity = response.getEntity(); entityStream = entity.getContent(); logger.log(Level.SEVERE, "Can't unmarshal response from " + request.getURI() + " via " + request.getMethod() + ":" + IOUtils.toString(entityStream)); e.printStackTrace(); throw e; } finally { entity.consumeContent(); IOUtils.closeQuietly(entityStream); } } if (doRetry) { retries++; if (retries > maxRetries) { throw new HttpException("Number of retries exceeded for " + request.getURI(), error); } doRetry = false; try { Thread.sleep((int) Math.pow(2.0, retries) * 1000); } catch (InterruptedException ex) { // do nothing } } } while (!done); return result; }
From source file:com.youzu.android.framework.http.HttpHandler.java
@SuppressWarnings("unchecked") private ResponseInfo<T> sendRequest(HttpRequestBase request) throws HttpException { HttpRequestRetryHandler retryHandler = client.getHttpRequestRetryHandler(); while (true) { if (autoResume && isDownloadingFile) { File downloadFile = new File(fileSavePath); long fileLen = 0; if (downloadFile.isFile() && downloadFile.exists()) { fileLen = downloadFile.length(); }// w w w . java 2s. c om if (fileLen > 0) { request.setHeader("RANGE", "bytes=" + fileLen + "-"); } } boolean retry = true; IOException exception = null; try { // ResponseInfo<T> responseInfo = null; // if (!isCancelled()) { // HttpResponse response = client.execute(request, context); // responseInfo = handleResponse(response); //// CookieStore store = client.getCookieStore(); // } // return responseInfo; requestMethod = request.getMethod(); if (HttpUtils.sHttpCache.isEnabled(requestMethod)) { String result = HttpUtils.sHttpCache.get(requestUrl); if (result != null) { return new ResponseInfo<T>(null, (T) result, true); } } ResponseInfo<T> responseInfo = null; if (!isCancelled()) { HttpResponse response = client.execute(request, context); responseInfo = handleResponse(response); } return responseInfo; } catch (UnknownHostException e) { Log.e("APP", "HttpHandler sendRequest UnknownHostException:" + e.getMessage()); exception = e; retry = retryHandler.retryRequest(exception, ++retriedCount, context); } catch (IOException e) { Log.e("APP", "HttpHandler sendRequest IOException: " + e.toString()); exception = e; retry = retryHandler.retryRequest(exception, ++retriedCount, context); } catch (NullPointerException e) { Log.e("APP", "HttpHandler sendRequest NullPointerException:" + e.getMessage()); exception = new IOException(e.getMessage()); exception.initCause(e); retry = retryHandler.retryRequest(exception, ++retriedCount, context); } catch (HttpException e) { Log.e("APP", "HttpHandler sendRequest HttpException:" + e.getMessage()); throw e; } catch (Throwable e) { Log.e("APP", "HttpHandler sendRequest Throwable:" + e.getMessage()); exception = new IOException(e.getMessage()); exception.initCause(e); retry = retryHandler.retryRequest(exception, ++retriedCount, context); } Log.e("APP", "retry:" + retry); if (!retry) { HttpException httpException = new HttpException(exception); Log.e("APP", "HttpHandler sendRequest HttpException:" + httpException.getMessage()); // callback.onFailure(httpException,httpException.getMessage()); throw httpException; } } }
From source file:org.instagram4j.DefaultInstagramClient.java
@SuppressWarnings("unchecked") private <T> Result<T[]> requestEntities(HttpRequestBase method, Class<T> type) throws InstagramException { method.getParams().setParameter("http.useragent", "Instagram4j/1.0"); JsonParser jp = null;//from w ww. ja v a2s . c o m HttpResponse response = null; ResultMeta meta = null; try { method.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8"); setEnforceHeader(method); HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(AllClientPNames.CONNECTION_TIMEOUT, 15000); client.getParams().setParameter(AllClientPNames.SO_TIMEOUT, 30000); if (LOG.isDebugEnabled()) LOG.debug(String.format("Requesting entities entry point %s, method %s", method.getURI().toString(), method.getMethod())); autoThrottle(); response = client.execute(method); jp = createParser(response, method); JsonToken tok = jp.nextToken(); if (tok != JsonToken.START_OBJECT) { if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) throw createInstagramException("Instagram request failed", method.getURI().toString(), response, null, null); throw createInstagramException("Invalid response format from Instagram API", method.getURI().toString(), response, null, null); } Pagination pagination = null; T[] data = null; while (true) { tok = jp.nextValue(); if (tok == JsonToken.START_ARRAY) { // Should be "data" String name = jp.getCurrentName(); if (!"data".equals(name)) throw createInstagramException("Unexpected field name " + name, method.getURI().toString(), response, meta, null); List<T> items = new ArrayList<T>(); tok = jp.nextToken(); if (tok == JsonToken.START_OBJECT) { if (type != null) { T item; while ((item = jp.readValueAs(type)) != null) items.add(item); } else jp.readValueAs(Map.class); // Consume & ignore } data = (T[]) Array.newInstance(type, items.size()); System.arraycopy(items.toArray(), 0, data, 0, items.size()); } else if (tok == JsonToken.START_OBJECT) { // Should be "pagination" or "meta" String name = jp.getCurrentName(); if ("pagination".equals(name)) pagination = jp.readValueAs(Pagination.class); else if ("meta".equals(name)) meta = jp.readValueAs(ResultMeta.class); else throw createInstagramException("Unexpected field name " + name, method.getURI().toString(), response, meta, null); } else break; } if (data == null && meta == null && response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) throw createInstagramException("Instagram request failed", method.getURI().toString(), response, null, null); Result<T[]> result = new Result<T[]>(pagination, meta, data); setRateLimits(response, result); return result; } catch (JsonParseException e) { throw createInstagramException("Error parsing response from Instagram: " + e.getMessage(), method.getURI().toString(), response, meta, e); } catch (JsonProcessingException e) { throw createInstagramException("Error parsing response from Instagram: " + e.getMessage(), method.getURI().toString(), response, meta, e); } catch (IOException e) { throw createInstagramException("Error communicating with Instagram: " + e.getMessage(), method.getURI().toString(), response, meta, e); } finally { if (jp != null) try { jp.close(); } catch (IOException e) { } method.releaseConnection(); } }
From source file:com.ibm.sbt.services.client.ClientService.java
/** * Execute the specified HttpRequest//from w w w .ja va 2 s.c o m * * @param httpRequestBase * @param args * @param content * @return * @throws ClientServicesException */ protected Response execRequest(HttpRequestBase httpRequestBase, Args args, Object content) throws ClientServicesException { if (Profiler.isEnabled()) { String msg = httpRequestBase.getMethod().toUpperCase() + " " + getUrlPath(args); ProfilerAggregator agg = Profiler.startProfileBlock(profilerRequest, msg); long ts = Profiler.getCurrentTime(); try { return _xhr(httpRequestBase, args, content); } finally { Profiler.endProfileBlock(agg, ts); } } else { return _xhr(httpRequestBase, args, content); } }
From source file:com.hpe.application.automation.tools.pc.MockPcRestProxyBadResponses.java
@Override protected HttpResponse executeRequest(HttpRequestBase request) throws PcException, ClientProtocolException, IOException { HttpResponse response = null;/* w ww .j av a 2 s . com*/ String requestUrl = request.getURI().toString(); if (requestUrl.equals( String.format(AUTHENTICATION_LOGIN_URL, PcTestBase.WEB_PROTOCOL, PcTestBase.PC_SERVER_NAME))) { throw new PcException(PcTestBase.pcAuthenticationFailureMessage); } else if (requestUrl.equals(String.format(getBaseURL() + "/%s", RUNS_RESOURCE_NAME))) { throw new PcException(PcTestBase.pcNoTimeslotExceptionMessage); } else if (requestUrl .equals(String.format(getBaseURL() + "/%s/%s", RUNS_RESOURCE_NAME, PcTestBase.RUN_ID_WAIT))) { response = getOkResponse(); response.setEntity( new StringEntity(PcTestBase.runResponseEntity.replace("*", runState.next().value()))); if (!runState.hasNext()) runState = initializeRunStateIterator(); } else if (requestUrl.equals(String.format(getBaseURL() + "/%s/%s/%s", RUNS_RESOURCE_NAME, PcTestBase.RUN_ID, RESULTS_RESOURCE_NAME))) { response = getOkResponse(); response.setEntity(new StringEntity(PcTestBase.emptyResultsEntity)); } else if (requestUrl.equals(String.format(getBaseURL() + "/%s/%s/%s", RUNS_RESOURCE_NAME, PcTestBase.RUN_ID, PcTestBase.STOP_MODE))) { throw new PcException(PcTestBase.pcStopNonExistRunFailureMessage); } if (response == null) throw new PcException( String.format("%s %s is not recognized by PC Rest Proxy", request.getMethod(), requestUrl)); return response; }
From source file:org.instagram4j.DefaultInstagramClient.java
private <T> Result<T> requestEntity(HttpRequestBase method, Class<T> type, boolean signableRequest) throws InstagramException { method.getParams().setParameter("http.useragent", "Instagram4j/1.0"); JsonParser jp = null;//from w w w.j av a2s . c o m HttpResponse response = null; ResultMeta meta = null; try { method.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "UTF-8"); if (signableRequest) setEnforceHeader(method); HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(AllClientPNames.CONNECTION_TIMEOUT, 15000); client.getParams().setParameter(AllClientPNames.SO_TIMEOUT, 30000); if (LOG.isDebugEnabled()) LOG.debug(String.format("Requesting entity entry point %s, method %s", method.getURI().toString(), method.getMethod())); autoThrottle(); response = client.execute(method); jp = createParser(response, method); JsonToken tok = jp.nextToken(); if (tok != JsonToken.START_OBJECT) { if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) throw createInstagramException("Instagram request failed", method.getURI().toString(), response, null, null); throw createInstagramException("Invalid response format from Instagram API", method.getURI().toString(), response, null, null); } T data = null; while (true) { tok = jp.nextValue(); if (tok == JsonToken.START_ARRAY) { throw createInstagramException("Unexpected array in entity response " + jp.getCurrentName(), method.getURI().toString(), response, meta, null); } else if (tok == JsonToken.START_OBJECT) { // Should be "data" or "meta" String name = jp.getCurrentName(); if ("meta".equals(name)) meta = jp.readValueAs(ResultMeta.class); else if ("data".equals(name)) { if (type != null) data = jp.readValueAs(type); else jp.readValueAs(Map.class); // Consume & ignore } else throw createInstagramException("Unexpected field name " + name, method.getURI().toString(), response, meta, null); } else break; } if (data == null && meta == null && response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) throw createInstagramException("Instagram request failed", method.getURI().toString(), response, null, null); Result<T> result = new Result<T>(null, meta, data); setRateLimits(response, result); return result; } catch (JsonParseException e) { throw createInstagramException("Error parsing response from Instagram: " + e.getMessage(), method.getURI().toString(), response, meta, e); } catch (JsonProcessingException e) { throw createInstagramException("Error parsing response from Instagram: " + e.getMessage(), method.getURI().toString(), response, meta, e); } catch (IOException e) { throw createInstagramException("Error communicating with Instagram: " + e.getMessage(), method.getURI().toString(), response, meta, e); } finally { if (jp != null) try { jp.close(); } catch (IOException e) { } method.releaseConnection(); } }