List of usage examples for org.apache.commons.httpclient HttpMethod getResponseHeaders
public abstract Header[] getResponseHeaders();
From source file:edu.du.penrose.systems.fedoraProxy.web.bus.OaiAggregator.java
/** * Return result of type...//w w w. ja va 2 s .co m * * <?xml version="1.0" encoding="UTF-8"?> * <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> * <responseDate>2011-06-07T11:30:42Z</responseDate> * * <request verb="ListRecords" metadataPrefix="oai_dc" resumptionToken="">http://adr.coalliance.org/codu/fez/oai.php</request> * <ListRecords> * <record> * <header> * <identifier>oai:adr.coalliance.org:codu:48566</identifier> * <datestamp>2010-04-25T17:35:02Z</datestamp> * <setSpec>oai:adr.coalliance.org:codu:48565</setSpec> * </header> * <metadata> * <oai_dc:dc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/"> * <dc:title>Girls Stretch at the University of Denver Lamont School of Music</dc:title> * <dc:identifier>http://adr.coalliance.org/codu/fez/view/codu:48566</dc:identifier> * <dc:description>A young female student (foreground) at the University of Denver (DU) Lamont School of Music Dance Department stretches during a dance class in Denver, Colorado. Other female students are visible in the background. Children's classes at the Lamont School of Music were held at 909 Grant Street, Denver, Colorado. The Children's Dance Theatre was the performance group composed of students from the children's dance classes at Lamont.</dc:description> * <dc:type>DU Image</dc:type> * <dc:date>Array</dc:date> * <dc:creator>Brooks, Marshall</dc:creator> * * <dc:subject>Dance</dc:subject> * <dc:subject>Modern dance</dc:subject> * <dc:subject>Children</dc:subject> * <dc:subject>Girls</dc:subject> * <dc:publisher>University of Denver</dc:publisher> * <dc:relation>Vera Sears Papers</dc:relation> * <dc:format>http://adr.coalliance.org/codu/fez/eserv/codu:48566/M272.01.0001.0001.00002.tif</dc:format> * dc:format>http://adr.coalliance.org/codu/fez/eserv/codu:48566/M272.01.0001.0001.00002_access.jpg</dc:format> * </oai_dc:dc> * </metadata> * </record> * <resumptionToken></resumptionToken> * </listRecords> * </OAI-PMH> * * @param getString the get url string * @param response * @param authenicate * @param aggregateSetName * @param metadataPrefix * @return * @throws IOException */ String executeOaiListSetRecords(String getString, HttpServletResponse response, boolean authenicate, String aggregateSetName, String metadataPrefix) throws IOException { HttpClient theClient = new HttpClient(); HttpMethod method = new GetMethod(getString); FedoraDatastream_get.setDefaultHeaders(method); FedoraDatastream_get.setAdrCredentials(theClient, authenicate); String setRecords = null; try { theClient.executeMethod(method); // Set outgoing headers, to match headers from the server Header[] headers = method.getResponseHeaders(); for (Header header : headers) { if ("Content-Type".equalsIgnoreCase(header.getName())) { response.setContentType(header.getValue()); } response.setHeader(header.getName(), header.getValue()); } // Write the body, flush and close setRecords = method.getResponseBodyAsString(); response.getWriter().print(setRecords); } finally { method.releaseConnection(); } // response.getOutputStream().flush(); // response.getOutputStream().close(); return setRecords; }
From source file:com.yahoo.flowetl.services.HttpService.java
/** * Calls the given http params and returns a result object. * //from w ww.j a v a2s.c o m * @param params * * @return the http result */ public HttpResult call(HttpParams params) { Pair<HttpClient, HttpMethod> clientMet = generator.generate(params); HttpClient client = clientMet.getFirst(); HttpMethod toCall = clientMet.getSecond(); HttpResult out = new HttpResult(); out.statusCode = -1; out.sourceParams = params; InputStream is = null; try { if (logger.isEnabled(Level.INFO)) { logger.log(Level.INFO, "Running http method " + toCall + " with params " + params); } caller.execute(client, toCall, params.retries); is = toCall.getResponseBodyAsStream(); String responseBody = IOUtils.toString(is); int st = toCall.getStatusCode(); Header[] hv = toCall.getResponseHeaders(); // copy over out.statusCode = st; out.responseBody = responseBody; Map<String, String> headersIn = new TreeMap<String, String>(); if (hv != null) { for (Header h : hv) { headersIn.put(h.getName(), h.getValue()); } } out.headers = headersIn; } catch (HttpException e) { if (logger.isEnabled(Level.WARN)) { logger.log(Level.WARN, e, "Failed calling " + toCall); } } catch (IOException e) { if (logger.isEnabled(Level.WARN)) { logger.log(Level.WARN, e, "Failed calling " + toCall); } } finally { IOUtils.closeQuietly(is); toCall.releaseConnection(); } return out; }
From source file:com.itude.mobile.mobbl.server.http.HttpDelegate.java
private HttpResponse executeHttpMethod(HttpMethod method) throws HttpException, IOException { HttpResponse response = new HttpResponse(); String responseHeader = null; response.setResponseCode(httpClient.executeMethod(method)); try {//from ww w .jav a 2 s .c o m responseHeader = method.getResponseHeader(Constants.CONTENT_TYPE).getValue(); } catch (NullPointerException e) { logger.debug("ResponseHeader was null"); } if (responseHeader != null) response.setContentType(responseHeader); // response.setResponseBody(method.getResponseBody()); response.setResponseHeaders(method.getResponseHeaders()); response.setResponseStatusLine(response.getResponseStatusLine()); Header contentLength = method.getResponseHeader(Constants.CONTENT_LENGTH); if (contentLength != null) response.setContentLength(contentLength.getValue()); if (response.getContentLength() > -1) { InputStream stream = null; byte[] body = new byte[response.getContentLength()]; try { stream = method.getResponseBodyAsStream(); int offset = 0; int i = -1; while ((i = stream.read(body, offset, 1024)) != -1) offset += i; response.setResponseBody(body); } catch (Exception e) { logger.error("Could not read entire response body", e); } finally { if (stream != null) stream.close(); } } else { logger.debug("Content-length unknown"); InputStream stream = null; ByteArrayOutputStream body = new ByteArrayOutputStream(); try { stream = method.getResponseBodyAsStream(); int i = -1; while ((i = stream.read()) != -1) body.write(i); response.setResponseBody(body.toByteArray()); response.setContentLength(body.size()); } catch (Exception e) { logger.error("Could not read entire response body", e); } finally { body.close(); if (stream != null) stream.close(); } } return response; }
From source file:edu.du.penrose.systems.fedoraProxy.web.bus.OaiAggregator.java
/** * Get a list of all aggregate sets that an AggregateList object knows about.<br><br> * /* w ww. j av a2 s . c om*/ * NOTE: I am using HttpMethod.getResponseBodyAsString() instead of HttpMethod.getResponseBodyAsStream(), to make it easy to parse, * unfortunately it reads the entire response at once. Is this a potential memory overflow? Since we are reading text not large * binary files, such as a pdf or an image, hopefully we be OK. TBD * <br> * The response is of type... * <br> * <?xml version="1.0" encoding="UTF-8"?> * <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> * <responseDate>2011-06-06T08:46:07Z</responseDate> * * <request verb="ListSets" resumptionToken="">http://adr.coalliance.org/codu/fez/oai.php</request> * <ListSets> * <set> * <setSpec>oai:adr.coalliance.org:codu:37742</setSpec> * <setName>A Nation In Time And Space</setName> * </set> * <set> * inject our aggregate set spec and name * </set> 0..n * </ListSets> * </OAI-PMH> * * @param getString the get url string * @param response * @param authenicate * @param set * @param metadataPrefix * @throws IOException */ private void executeOaiListSetsWithAggregates(String getString, HttpServletResponse response, boolean authenicate) throws IOException { HttpClient theClient = new HttpClient(); HttpMethod method = new GetMethod(getString); AggregateList aggregateSets = new AggregateList(); FedoraDatastream_get.setDefaultHeaders(method); FedoraDatastream_get.setAdrCredentials(theClient, authenicate); try { theClient.executeMethod(method); // Set the content type, as it comes from the server Header[] headers = method.getResponseHeaders(); for (Header header : headers) { if ("Content-Type".equalsIgnoreCase(header.getName())) { response.setContentType(header.getValue()); } response.setHeader(header.getName(), header.getValue()); } // Write the body, flush and close InputStream is = method.getResponseBodyAsStream(); String sets = method.getResponseBodyAsString(); Iterator<AggregateSet> aggreateSetsIterator = aggregateSets.getIterator(); StringBuffer aggSetsString = new StringBuffer(); while (aggreateSetsIterator.hasNext()) { AggregateSet currentAggSet = aggreateSetsIterator.next(); aggSetsString.append("<set>\n"); aggSetsString.append("<setSpec>" + currentAggSet.getUniqueID() + "</setSpec>\n"); aggSetsString.append("<setName>" + currentAggSet.getSetName() + "</setName>\n"); aggSetsString.append("</set>"); } String allSets = sets.replace("<resumptionToken>", aggSetsString.toString() + "\n<resumptionToken>"); response.getWriter().print(allSets); // response.getOutputStream().flush(); // response.getOutputStream().close(); } finally { method.releaseConnection(); } }
From source file:com.worldline.easycukes.rest.client.RestService.java
/** * Allows to send a GET request to the path passed using the http client * * @param path the path on which the request should be sent */// w w w . ja v a 2s .c om public void sendGetRequest(final String path) throws Exception { String fullpath = path; if (path.startsWith("/")) fullpath = baseUrl + path; log.info("Sending GET request to " + fullpath); final HttpMethod method = new GetMethod(fullpath); try { for (final Map.Entry<String, String> header : requestHeaders.entrySet()) method.setRequestHeader(header.getKey(), header.getValue()); final int statusCode = httpClient.executeMethod(method); response = new ResponseWrapper(method.getResponseBodyAsString(), method.getResponseHeaders(), statusCode); } catch (final IOException e) { log.error(e.getMessage(), e); throw e; } finally { method.releaseConnection(); } }
From source file:edu.umd.cs.buildServer.BuildServerDaemon.java
/** * Get a required header value. If the header value isn't specified in the * server response, returns null.//from ww w. j a va2 s .com * * @param method * the HttpMethod representing the request/response * @param headerName * the name of the header * @return the value of the header, or null if the header isn't present * @throws HttpException */ private String getRequiredHeaderValue(HttpMethod method, String headerName) throws HttpException { Header header = method.getResponseHeader(headerName); if (header == null || header.getValues().length != 1) { getLog().error("Internal error: Missing header " + headerName + " in submit server response"); for (Header h : method.getResponseHeaders()) { getLog().error(" have header " + h.getName()); } return null; } return header.getValue(); }
From source file:com.hp.alm.ali.rest.client.AliRestClient.java
private void writeResponse(ResultInfo result, HttpMethod method, boolean writeBodyAndHeaders) { OutputStream bodyStream = result.getBodyStream(); StatusLine statusLine = method.getStatusLine(); if (statusLine != null) { result.setReasonPhrase(statusLine.getReasonPhrase()); }//from ww w . j a v a 2s. co m try { result.setLocation(method.getURI().toString()); } catch (URIException e) { throw new RuntimeException(e); } if (writeBodyAndHeaders) { Map<String, String> headersMap = result.getHeaders(); Header[] headers = method.getResponseHeaders(); for (Header header : headers) { headersMap.put(header.getName(), header.getValue()); } } result.setHttpStatus(method.getStatusCode()); Filter filter = new IdentityFilter(result); for (ResponseFilter responseFilter : responseFilters) { filter = responseFilter.applyFilter(filter, method, result); } if (writeBodyAndHeaders && bodyStream != null && method.getStatusCode() != 204) { try { InputStream responseBody = method.getResponseBodyAsStream(); if (responseBody != null) { IOUtils.copy(responseBody, filter.getOutputStream()); bodyStream.flush(); bodyStream.close(); } } catch (IOException e) { throw new RuntimeException(e); } } }
From source file:edu.umd.cs.buildServer.BuildServerDaemon.java
/** * Get a required header value. If the header value isn't specified in the * server response, returns null.// ww w . j a va 2 s . c o m * * @param method * the HttpMethod representing the request/response * @param headerName * the name of the header * @return the value of the header, or null if the header isn't present * @throws HttpException */ private String getRequiredHeaderValue(HttpMethod method, String headerName, String alternativeHeaderName) throws HttpException { Header header = method.getResponseHeader(headerName); if (header == null || header.getValues().length != 1) header = method.getResponseHeader(alternativeHeaderName); if (header == null || header.getValues().length != 1) { getLog().error("Internal error: Missing header " + headerName + " in submit server response"); for (Header h : method.getResponseHeaders()) { getLog().error(" have header " + h.getName()); } return null; } return header.getValue(); }
From source file:edu.caltech.ipac.firefly.server.network.HttpServices.java
/** * Execute the given HTTP method with the given parameters. * @param method the function or method to perform * @param cookies optional, sent with request if present. * @return true is the request was successfully received, understood, and accepted (code 2xx). */// w w w. j a v a 2s .com public static boolean executeMethod(HttpMethod method, String userId, String password, Map<String, String> cookies) { try { if (!StringUtils.isEmpty(userId)) { UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userId, password); httpClient.getState().setCredentials(AuthScope.ANY, credentials); } else { // check to see if the userId and password is in the url userId = URLDownload.getUserFromUrl(method.toString()); if (userId != null) { password = URLDownload.getPasswordFromUrl(method.toString()); UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userId, password); httpClient.getState().setCredentials(AuthScope.ANY, credentials); } } if (cookies != null) { StringBuilder sb = new StringBuilder(); for (Map.Entry<String, String> entry : cookies.entrySet()) { if (sb.length() > 0) sb.append("; "); sb.append(entry.getKey()); sb.append("="); sb.append(entry.getValue()); } if (sb.length() > 0) { method.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES); method.setRequestHeader("Cookie", sb.toString()); } } int status = httpClient.executeMethod(method); boolean isSuccess = status >= 200 && status < 300; String reqDesc = "URL:" + method.getURI(); if (isSuccess) { LOG.info(reqDesc); } else { reqDesc = reqDesc + "\nREQUEST HEADERS: " + CollectionUtil.toString(method.getRequestHeaders()).replaceAll("\\r|\\n", "") + "\nPARAMETERS:\n " + getDesc(method.getParams()) + "\nRESPONSE HEADERS: " + CollectionUtil.toString(method.getResponseHeaders()).replaceAll("\\r|\\n", ""); LOG.error("HTTP request failed with status:" + status + "\n" + reqDesc); } return isSuccess; } catch (Exception e) { LOG.error(e, "Unable to connect to:" + method.toString()); } return false; }
From source file:com.mobilefirst.fiberlink.WebServiceRequest.java
/** * Description: Send Request method//from ww w . j a v a2s . co m * @param method: the type of HTTP Method to send * @param responseToVerify: string to verify in the response * @return whether the response was verified * @throws Exception */ private boolean sendRequest(HttpMethod method, String responseToVerify) throws Exception { boolean isResponseVerified = false; try { statusCode = client.executeMethod(method); responseBody = method.getResponseBodyAsString(); System.out.println("Request URL :: " + method.getURI()); System.out.println( "------------------------------------Begin Debug: Request Headers----------------------------------------------------------\n"); Header[] requestHeaders = method.getRequestHeaders(); for (int cn = 0; cn < requestHeaders.length; cn++) { System.out.println(requestHeaders[cn].toString()); } System.out.println( "------------------------------------Begin Debug: Response Headers----------------------------------------------------------\n"); Header[] responseHeaders = method.getResponseHeaders(); for (int cn = 0; cn < responseHeaders.length; cn++) { System.out.println(responseHeaders[cn].toString()); } System.out.println( "------------------------------------End Debug----------------------------------------------------------\n"); if (statusCode != HttpStatus.SC_OK) { throw new Exception("POST method failed :: " + statusCode + " and ResponseBody :: " + responseBody); } else { System.out.println( "------------------------------------Response Start----------------------------------------------------------\n"); System.out.println(responseBody + "\n"); System.out.println( "------------------------------------Resoonse End----------------------------------------------------------"); if (null == jsessionId) { for (int cnt = 0; cnt < responseHeaders.length; cnt++) { // System.out.println(headers[cnt].toString()); if (responseHeaders[cnt].toString().contains("Set-Cookie: JSESSIONID=")) { jsessionId = getPatternMatches("JSESSIONID=(.+); Path", responseHeaders[cnt].toString(), false); System.out.println("JESSIONID: " + jsessionId); break; } } } if (responseBody.toLowerCase().contains(responseToVerify.toLowerCase())) { System.out.println("RESPONSE VERIFIED. Contains: " + responseToVerify); isResponseVerified = true; } } } catch (Exception e) { e.printStackTrace(); throw new Exception("Exception in sendRequest method..." + e.getMessage()); } return isResponseVerified; }