List of usage examples for org.apache.http.client.methods HttpRequestBase getMethod
public abstract String getMethod();
From source file:com.smartsheet.api.internal.http.DefaultHttpClient.java
/** * Log to the SLF4J logger (level based upon response status code). Override this function to add logging * or capture performance metrics.//from w w w . j a v a2 s .c o m * * @param request request * @param requestEntity request body * @param response response * @param responseEntity response body * @param durationMillis response time in ms * @throws IOException */ public void logRequest(HttpRequestBase request, HttpEntitySnapshot requestEntity, HttpResponse response, HttpEntitySnapshot responseEntity, long durationMillis) throws IOException { logger.info("{} {}, Response Code:{}, Request completed in {} ms", request.getMethod(), request.getURI(), response.getStatusCode(), durationMillis); if (response.getStatusCode() != 200) { // log the request and response on error logger.warn("{}", RequestAndResponseData.of(request, requestEntity, response, responseEntity, REQUEST_RESPONSE)); } else { // log the summary request and response on success logger.debug("{}", RequestAndResponseData.of(request, requestEntity, response, responseEntity, REQUEST_RESPONSE_SUMMARY)); } }
From source file:me.buom.shiro.test.AppTest.java
private Header[] buildHeader(ApiKey apiKey, HttpRequestBase httpRequest, String contentType, String entity) throws Exception { String accessKey = apiKey.getAccessKey(); String secretKey = apiKey.getSecretKey(); String contentMd5 = entity != null ? DigestUtils.md5Hex(entity) : ""; String dateString = dateFormatter.get().format(new Date()); String stringToSign = String.format(Locale.US, "%s\n%s\n%s\n%s\n%s", httpRequest.getMethod(), contentMd5, contentType, dateString, httpRequest.getURI().getPath()); byte[] hexHmac = HmacSha1.hash(secretKey, stringToSign); String base64Hmac = Base64.encodeToString(hexHmac); Header[] headers = new Header[] { new BasicHeader("Content-Type", contentType), new BasicHeader("Content-MD5", contentMd5), new BasicHeader("Date", dateString), new BasicHeader("Authorization", String.format(Locale.US, "AWS %s:%s", accessKey, base64Hmac)), }; return headers; }
From source file:com.intuit.tank.httpclient4.TankHttpClient4.java
private void sendRequest(BaseRequest request, @Nonnull HttpRequestBase method, String requestBody) { String uri = null;/* ww w . jav a 2 s . co m*/ long waitTime = 0L; CloseableHttpResponse response = null; try { uri = method.getURI().toString(); LOG.debug(request.getLogUtil().getLogMessage( "About to " + method.getMethod() + " request to " + uri + " with requestBody " + requestBody, LogEventType.Informational)); List<String> cookies = new ArrayList<String>(); if (context.getCookieStore().getCookies() != null) { for (Cookie cookie : context.getCookieStore().getCookies()) { cookies.add("REQUEST COOKIE: " + cookie.toString()); } } request.logRequest(uri, requestBody, method.getMethod(), request.getHeaderInformation(), cookies, false); setHeaders(request, method, request.getHeaderInformation()); long startTime = System.currentTimeMillis(); request.setTimestamp(new Date(startTime)); response = httpclient.execute(method, context); // read response body byte[] responseBody = new byte[0]; // check for no content headers if (response.getStatusLine().getStatusCode() != 203 && response.getStatusLine().getStatusCode() != 202 && response.getStatusLine().getStatusCode() != 204) { try { InputStream httpInputStream = response.getEntity().getContent(); responseBody = IOUtils.toByteArray(httpInputStream); } catch (Exception e) { LOG.warn("could not get response body: " + e); } } long endTime = System.currentTimeMillis(); processResponse(responseBody, startTime, endTime, request, response.getStatusLine().getReasonPhrase(), response.getStatusLine().getStatusCode(), response.getAllHeaders()); waitTime = endTime - startTime; } catch (Exception ex) { LOG.error(request.getLogUtil().getLogMessage( "Could not do " + method.getMethod() + " to url " + uri + " | error: " + ex.toString(), LogEventType.IO), ex); throw new RuntimeException(ex); } finally { try { method.releaseConnection(); if (response != null) { response.close(); } } catch (Exception e) { LOG.warn("Could not release connection: " + e, e); } if (method.getMethod().equalsIgnoreCase("post") && request.getLogUtil().getAgentConfig().getLogPostResponse()) { LOG.info(request.getLogUtil() .getLogMessage("Response from POST to " + request.getRequestUrl() + " got status code " + request.getResponse().getHttpCode() + " BODY { " + request.getResponse().getBody() + " }", LogEventType.Informational)); } } if (waitTime != 0) { doWaitDueToLongResponse(request, waitTime, uri); } }
From source file:mobi.jenkinsci.ci.JenkinsCIPlugin.java
protected byte[] retrieveUrl(final String userAgent, final String linkUrl, final HashMap<String, HeaderElement[]> contentHeaders, final Object ctx) throws Exception { final JenkinsClient client = (JenkinsClient) ctx; final HttpRequestBase get = getNewHttpRequest(null, linkUrl); if (userAgent != null) { get.setHeader("User-Agent", userAgent); }/*from w w w. ja v a2 s. c o m*/ final HttpResponse response = client.http.execute(get); try { final int status = response.getStatusLine().getStatusCode(); if (status != HttpURLConnection.HTTP_OK) { throw new IOException("HTTP- " + get.getMethod() + " " + linkUrl + " returned status " + status); } if (contentHeaders != null) { for (final Header header : response.getAllHeaders()) { contentHeaders.put(header.getName(), header.getElements()); } } final ByteArrayOutputStream out = new ByteArrayOutputStream(); final InputStream content = response.getEntity().getContent(); IOUtils.copy(content, out); content.close(); return out.toByteArray(); } finally { get.releaseConnection(); } }
From source file:com.kappaware.logtrawler.output.httpclient.HttpClient.java
public String exec(HttpRequestBase request, ContentType contentType, String requestData, List<Header> headers) throws HttpClientException { if (headers != null) { for (Header h : headers) { request.setHeader(h);/*from w w w . j av a 2s . c o m*/ } } if (requestData != null) { ((HttpEntityEnclosingRequestBase) request).setEntity(new StringEntity(requestData, contentType)); } CloseableHttpResponse response = null; try { response = httpclient.execute(request); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 404 && this.on404 == On404.NULL_ON_GET && request.getMethod().equals("GET")) { return null; } if (statusCode >= 200 && statusCode < 300) { return getEntity(response); } else { request.getURI(); throw new HttpClientException("Unexpected HTTP Response code", request.getMethod(), request.getURI(), requestData, response.getStatusLine().getStatusCode(), response.getStatusLine().getReasonPhrase(), getEntity(response)); } } catch (Exception e) { if (e instanceof HttpClientException) { throw (HttpClientException) e; } else { throw new HttpClientException("Exception in HTTP Client", request.getMethod(), request.getURI(), requestData, e); } } finally { if (response != null) { try { response.close(); } catch (IOException e) { } } } }
From source file:mobi.jenkinsci.ci.JenkinsCIPlugin.java
@Override public RawBinaryNode download(final HttpServletRequest req, final String url, final Account account, final PluginConfig pluginConf) throws IOException { final JenkinsClient client = JenkinsClient.getInstance(account, pluginConf); final HttpRequestBase get = getNewHttpRequest(req, url); final ByteArrayOutputStream out = new ByteArrayOutputStream(); final RawBinaryNode result = new RawBinaryNode(); try {/*from w w w. j a v a 2s. c om*/ final HttpResponse response = client.http.execute(get); final StatusLine status = response.getStatusLine(); if (status.getStatusCode() != HttpURLConnection.HTTP_OK) { throw new IOException("HTTP-" + get.getMethod() + " " + url + " failed: status code " + status); } IOUtils.copy(response.getEntity().getContent(), out); for (final Header h : response.getAllHeaders()) { final String headerName = h.getName(); if (headerName.equalsIgnoreCase(HttpHeaders.CONTENT_TYPE)) { result.setHttpContentType(h.getValue()); } else if (headerName.equalsIgnoreCase(HttpHeaders.CONTENT_LENGTH)) { result.setSize(Long.parseLong(h.getValue())); } else if (headerName.equalsIgnoreCase(HttpHeaders.CONTENT_ENCODING)) { result.setHttpCharacterEncoding(h.getValue()); } } } finally { get.releaseConnection(); } result.setData(new ByteArrayInputStream(out.toByteArray())); return result; }
From source file:net.community.chest.gitcloud.facade.frontend.git.GitController.java
private StatusLine executeRemoteRequest(HttpRequestBase request, HttpServletRequest req, HttpServletResponse rsp) throws IOException { copyRequestHeadersValues(req, request); final CloseableHttpResponse response; if (HttpPost.METHOD_NAME.equalsIgnoreCase(request.getMethod())) { response = transferPostedData((HttpEntityEnclosingRequestBase) request, req); } else {// w w w. jav a 2s .c om response = client.execute(request); } try { HttpEntity rspEntity = response.getEntity(); StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if ((statusCode < HttpServletResponse.SC_OK) || (statusCode >= 300)) { String reason = StringUtils.trimToEmpty(statusLine.getReasonPhrase()); logger.warn("executeRemoteRequest(" + req.getMethod() + ")[" + req.getRequestURI() + "][" + req.getQueryString() + "]" + " bad response (" + statusCode + ") from remote end: " + reason); EntityUtils.consume(rspEntity); rsp.sendError(statusCode, reason); } else { rsp.setStatus(statusCode); copyResponseHeadersValues(req, response, rsp); transferBackendResponse(req, rspEntity, rsp); } return statusLine; } finally { response.close(); } }