List of usage examples for org.apache.commons.httpclient HttpMethodBase setQueryString
@Override public void setQueryString(NameValuePair[] params)
From source file:org.fao.oaipmh.requests.Transport.java
private HttpMethodBase setupHttpMethod() { HttpMethodBase httpMethod; if (method == Method.GET) { httpMethod = new GetMethod(); httpMethod.setQueryString(alParams.toArray(new NameValuePair[1])); } else {//from ww w . j a va 2 s .co m PostMethod pm = new PostMethod(); pm.setRequestBody(alParams.toArray(new NameValuePair[1])); httpMethod = pm; } httpMethod.setPath(address); httpMethod.setDoAuthentication(useAuthent()); return httpMethod; }
From source file:org.jboss.soa.esb.actions.http.HttpAction.java
public Message process(final Message msg) throws ActionProcessingException { try {//from w w w . j a v a2 s . co m final HttpClient client = new HttpClient(); final Properties props = msg.getProperties(); final String[] names = props.getNames(); if (METHOD_DELETE.equals(method)) { final HttpMethodBase req = new DeleteMethod(uri); for (int i = 0; i < names.length; i++) { final Matcher headerMatcher = PATTERN_HEADER.matcher(names[i]); if (headerMatcher.find()) req.addRequestHeader(headerMatcher.group(1), (String) props.getProperty(headerMatcher.group())); } client.executeMethod(req); final Header[] headers = req.getResponseHeaders(); for (int i = 0; i < headers.length; i++) props.setProperty(PREFIX_HEADER + headers[i].getName(), headers[i].getValue()); proxy.setPayload(msg, req.getResponseBodyAsString()); } else if (METHOD_GET.equals(method)) { final HttpMethodBase req = new GetMethod(uri); final List<NameValuePair> paramList = new ArrayList<NameValuePair>(); for (int i = 0; i < names.length; i++) { final Matcher headerMatcher = PATTERN_HEADER.matcher(names[i]); if (headerMatcher.find()) { req.addRequestHeader(headerMatcher.group(1), (String) props.getProperty(headerMatcher.group())); continue; } final Matcher paramMatcher = PATTERN_PARAM.matcher(names[i]); if (paramMatcher.find()) paramList.add(new NameValuePair(paramMatcher.group(1), (String) props.getProperty(paramMatcher.group()))); } req.setQueryString(paramList.toArray(new NameValuePair[] {})); client.executeMethod(req); final Header[] headers = req.getResponseHeaders(); for (int i = 0; i < headers.length; i++) props.setProperty(PREFIX_HEADER + headers[i].getName(), headers[i].getValue()); proxy.setPayload(msg, req.getResponseBodyAsString()); } else if (METHOD_POST.equals(method)) { final PostMethod req = new PostMethod(uri); for (int i = 0; i < names.length; i++) { final Matcher headerMatcher = PATTERN_HEADER.matcher(names[i]); if (headerMatcher.find()) { req.addRequestHeader(headerMatcher.group(1), (String) props.getProperty(headerMatcher.group())); continue; } final Matcher paramMatcher = PATTERN_PARAM.matcher(names[i]); if (paramMatcher.find()) req.addParameter(new NameValuePair(paramMatcher.group(1), (String) props.getProperty(paramMatcher.group()))); } req.setRequestEntity(new StringRequestEntity((String) proxy.getPayload(msg), null, null)); client.executeMethod(req); final Header[] headers = req.getResponseHeaders(); for (int i = 0; i < headers.length; i++) props.setProperty(PREFIX_HEADER + headers[i].getName(), headers[i].getValue()); proxy.setPayload(msg, req.getResponseBodyAsString()); } else if (METHOD_PUT.equals(method)) { final EntityEnclosingMethod req = new PutMethod(uri); for (int i = 0; i < names.length; i++) { final Matcher headerMatcher = PATTERN_HEADER.matcher(names[i]); if (headerMatcher.find()) req.addRequestHeader(headerMatcher.group(1), (String) props.getProperty(headerMatcher.group())); } req.setRequestEntity(new StringRequestEntity((String) proxy.getPayload(msg), null, null)); client.executeMethod(req); final Header[] headers = req.getResponseHeaders(); for (int i = 0; i < headers.length; i++) props.setProperty(PREFIX_HEADER + headers[i].getName(), headers[i].getValue()); proxy.setPayload(msg, req.getResponseBodyAsString()); } } catch (final Exception e) { throw new ActionProcessingException("Can't process message", e); } return msg; }
From source file:org.openlaszlo.data.HTTPDataSource.java
/** * @param since last modified time to use * @param req//from ww w . java 2 s. c o m * @param url if null, ignored * @param redirCount number of redirs we've done */ public static HttpData getDataOnce(HttpServletRequest req, HttpServletResponse res, long since, String surl, int redirCount, int timeout) throws IOException, HttpException, DataSourceException, MalformedURLException { HttpMethodBase request = null; HostConfiguration hcfg = new HostConfiguration(); /* [todo hqm 2006-02-01] Anyone know why this code was here? It is setting the mime type to something which just confuses the DHTML parser. if (res != null) { res.setContentType("application/x-www-form-urlencoded;charset=UTF-8"); } */ try { // TODO: [2002-01-09 bloch] cope with cache-control // response headers (no-store, no-cache, must-revalidate, // proxy-revalidate). if (surl == null) { surl = getURL(req); } if (surl == null || surl.equals("")) { throw new MalformedURLException( /* (non-Javadoc) * @i18n.test * @org-mes="url is empty or null" */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-312")); } String reqType = ""; String headers = ""; if (req != null) { reqType = req.getParameter("reqtype"); headers = req.getParameter("headers"); } boolean isPost = false; mLogger.debug("reqtype = " + reqType); if (reqType != null && reqType.equals("POST")) { request = new LZPostMethod(); request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); isPost = true; mLogger.debug("setting POST req method"); } else if (reqType != null && reqType.equals("PUT")) { request = new LZPutMethod(); // todo [hqm 2007] treat PUT like POST? isPost = true; mLogger.debug("setting PUT req method"); } else if (reqType != null && reqType.equals("DELETE")) { request = new LZDeleteMethod(); mLogger.debug("setting DELETE req method"); } else { mLogger.debug("setting GET (default) req method"); request = new LZGetMethod(); } request.getParams().setVersion(mUseHttp11 ? HttpVersion.HTTP_1_1 : HttpVersion.HTTP_1_0); // Proxy the request headers if (req != null) { LZHttpUtils.proxyRequestHeaders(req, request); } // Set headers from query string if (headers != null && headers.length() > 0) { StringTokenizer st = new StringTokenizer(headers, "\n"); while (st.hasMoreTokens()) { String h = st.nextToken(); int i = h.indexOf(":"); if (i > -1) { String n = h.substring(0, i); String v = h.substring(i + 2, h.length()); request.setRequestHeader(n, v); mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="setting header " + p[0] + "=" + p[1] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-359", new Object[] { n, v })); } } } mLogger.debug("Parsing url"); URI uri = LZHttpUtils.newURI(surl); try { hcfg.setHost(uri); } catch (Exception e) { throw new MalformedURLException( /* (non-Javadoc) * @i18n.test * @org-mes="can't form uri from " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-376", new Object[] { surl })); } // This gets us the url-encoded (escaped) path and query string String path = uri.getEscapedPath(); String query = uri.getEscapedQuery(); mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="encoded path: " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-389", new Object[] { path })); mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="encoded query: " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-397", new Object[] { query })); // This call takes a decoded (unescaped) path request.setPath(path); boolean hasQuery = (query != null && query.length() > 0); String rawcontent = null; // Newer rawpost protocol puts lzpostbody as a separate // top level query arg in the request. rawcontent = req.getParameter("lzpostbody"); if (isPost) { // Older rawpost protocol put the "lzpostbody" arg // embedded in the "url" args's query args if (rawcontent == null && hasQuery) { rawcontent = findQueryArg("lzpostbody", query); } if (rawcontent != null) { // Get the unescaped query string ((EntityEnclosingMethod) request).setRequestEntity(new StringRequestEntity(rawcontent)); } else if (hasQuery) { StringTokenizer st = new StringTokenizer(query, "&"); while (st.hasMoreTokens()) { String it = st.nextToken(); int i = it.indexOf("="); if (i > 0) { String n = it.substring(0, i); String v = it.substring(i + 1, it.length()); // POST encodes values during request ((PostMethod) request).addParameter(n, URLDecoder.decode(v, "UTF-8")); } else { mLogger.warn( /* (non-Javadoc) * @i18n.test * @org-mes="ignoring bad token (missing '=' char) in query string: " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-429", new Object[] { it })); } } } } else { // This call takes an encoded (escaped) query string request.setQueryString(query); } // Put in the If-Modified-Since headers if (since != -1) { String lms = LZHttpUtils.getDateString(since); request.setRequestHeader(LZHttpUtils.IF_MODIFIED_SINCE, lms); mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="proxying lms: " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-450", new Object[] { lms })); } mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="setting up http client" */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-460")); HttpClient htc = null; if (mConnectionMgr != null) { htc = new HttpClient(mConnectionMgr); } else { htc = new HttpClient(); } htc.setHostConfiguration(hcfg); // This is the data timeout mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="timeout set to " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-478", new Object[] { timeout })); htc.getParams().setSoTimeout(timeout); // Set connection timeout the same htc.getHttpConnectionManager().getParams().setConnectionTimeout(mConnectionTimeout); // Set timeout for getting a connection htc.getParams().setConnectionManagerTimeout(mConnectionPoolTimeout); // TODO: [2003-03-05 bloch] this should be more configurable (per app?) if (!isPost) { request.setFollowRedirects(mFollowRedirects > 0); } long t1 = System.currentTimeMillis(); mLogger.debug("starting remote request"); int rc = htc.executeMethod(hcfg, request); String status = HttpStatus.getStatusText(rc); if (status == null) { status = "" + rc; } mLogger.debug( /* (non-Javadoc) * @i18n.test * @org-mes="remote response status: " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-504", new Object[] { status })); HttpData data = null; if (isRedirect(rc) && mFollowRedirects > redirCount) { String loc = request.getResponseHeader("Location").toString(); String hostURI = loc.substring(loc.indexOf(": ") + 2, loc.length()); mLogger.info( /* (non-Javadoc) * @i18n.test * @org-mes="Following URL from redirect: " + p[0] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-517", new Object[] { hostURI })); long t2 = System.currentTimeMillis(); if (timeout > 0) { timeout -= (t2 - t1); if (timeout < 0) { throw new InterruptedIOException( /* (non-Javadoc) * @i18n.test * @org-mes=p[0] + " timed out after redirecting to " + p[1] */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-529", new Object[] { surl, loc })); } } data = getDataOnce(req, res, since, hostURI, redirCount++, timeout); } else { data = new HttpData(request, rc); } if (req != null && res != null) { // proxy response headers LZHttpUtils.proxyResponseHeaders(request, res, req.isSecure()); } return data; } catch (ConnectTimeoutException ce) { // Transduce to an InterrupedIOException, since lps takes these to be timeouts. if (request != null) { request.releaseConnection(); } throw new InterruptedIOException( /* (non-Javadoc) * @i18n.test * @org-mes="connecting to " + p[0] + ":" + p[1] + " timed out beyond " + p[2] + " msecs." */ org.openlaszlo.i18n.LaszloMessages.getMessage(HTTPDataSource.class.getName(), "051018-557", new Object[] { hcfg.getHost(), hcfg.getPort(), mConnectionTimeout })); } catch (HttpRecoverableException hre) { if (request != null) { request.releaseConnection(); } throw hre; } catch (HttpException e) { if (request != null) { request.releaseConnection(); } throw e; } catch (IOException ie) { if (request != null) { request.releaseConnection(); } throw ie; } catch (RuntimeException e) { if (request != null) { request.releaseConnection(); } throw e; } }
From source file:org.paxml.bean.HttpTag.java
private HttpMethodBase setQueryString(HttpMethodBase method) { Map<String, List<String>> value = getNameValuePairs(query, "query"); if (value != null) { List<NameValuePair> pairs = new ArrayList<NameValuePair>(); for (Map.Entry<String, List<String>> entry : value.entrySet()) { for (String v : entry.getValue()) { pairs.add(new NameValuePair(entry.getKey(), v)); }/* w ww . ja v a 2s . c om*/ } method.setQueryString(pairs.toArray(new NameValuePair[pairs.size()])); } else if (query != null) { method.setQueryString(query.toString()); } return method; }
From source file:org.zend.php.zendserver.monitor.internal.ui.RequestGeneratorJob.java
private void setGetParams(HttpMethodBase method, ParameterList paramsList) { List<Parameter> params = paramsList.getParameters(); if (params != null) { NameValuePair[] query = new NameValuePair[params.size()]; for (int i = 0; i < query.length; i++) { Parameter param = params.get(i); query[i] = new NameValuePair(param.getName(), param.getValue()); }/*from w w w .j a va 2 s .c om*/ method.setQueryString(query); } }
From source file:smartrics.rest.fitnesse.fixture.support.http.URIBuilder.java
@SuppressWarnings("deprecation") public void setURI(org.apache.commons.httpclient.HttpMethodBase m, URI uri) throws URIException { HostConfiguration conf = m.getHostConfiguration(); if (uri.isAbsoluteURI()) { conf.setHost(new HttpHost(uri)); m.setHostConfiguration(conf);//from w ww . j a va 2 s .c om } m.setPath(uri.getPath() != null ? uri.getEscapedPath() : "/"); m.setQueryString(uri.getQuery()); }