Example usage for org.apache.http.client.utils URLEncodedUtils format

List of usage examples for org.apache.http.client.utils URLEncodedUtils format

Introduction

In this page you can find the example usage for org.apache.http.client.utils URLEncodedUtils format.

Prototype

public static String format(final Iterable<? extends NameValuePair> parameters, final Charset charset) 

Source Link

Document

Returns a String that is suitable for use as an application/x-www-form-urlencoded list of parameters in an HTTP PUT or HTTP POST.

Usage

From source file:com.senseidb.servlet.AbstractSenseiClientServlet.java

private void handleSenseiRequest(HttpServletRequest req, HttpServletResponse resp,
        Broker<SenseiRequest, SenseiResult> broker) throws ServletException, IOException {
    long time = System.currentTimeMillis();
    int numHits = 0, totalDocs = 0;
    String query = null;/*  w  ww  .  jav  a2  s. c o m*/

    SenseiRequest senseiReq = null;
    try {
        JSONObject jsonObj = null;
        String content = null;

        if ("post".equalsIgnoreCase(req.getMethod())) {
            BufferedReader reader = req.getReader();
            content = readContent(reader);
            if (content == null || content.length() == 0)
                content = "{}";
            try {
                jsonObj = new JSONObject(content);
            } catch (JSONException jse) {
                String contentType = req.getHeader("Content-Type");
                if (contentType != null && contentType.indexOf("json") >= 0) {
                    logger.error("JSON parsing error", jse);
                    writeEmptyResponse(req, resp,
                            new SenseiError(jse.getMessage(), ErrorType.JsonParsingError));
                    return;
                }

                logger.warn("Old client or json error", jse);

                // Fall back to the old REST API.  In the future, we should
                // consider reporting JSON exceptions here.
                senseiReq = DefaultSenseiJSONServlet.convertSenseiRequest(
                        new DataConfiguration(new MapConfiguration(getParameters(content))));
                query = content;
            }
        } else {
            content = req.getParameter("json");
            if (content != null) {
                if (content.length() == 0)
                    content = "{}";
                try {
                    jsonObj = new JSONObject(content);
                } catch (JSONException jse) {
                    logger.error("JSON parsing error", jse);
                    writeEmptyResponse(req, resp,
                            new SenseiError(jse.getMessage(), ErrorType.JsonParsingError));
                    return;
                }
            } else {
                senseiReq = buildSenseiRequest(req);
                query = URLEncodedUtils.format(HttpRestSenseiServiceImpl.convertRequestToQueryParams(senseiReq),
                        "UTF-8");
            }
        }

        if (jsonObj != null) {
            String bqlStmt = jsonObj.optString(BQL_STMT);
            JSONObject templatesJson = jsonObj.optJSONObject(JsonTemplateProcessor.TEMPLATE_MAPPING_PARAM);
            JSONObject compiledJson = null;

            if (bqlStmt.length() > 0) {
                try {
                    if (jsonObj.length() == 1)
                        query = "bql=" + bqlStmt;
                    else
                        query = "json=" + content;
                    compiledJson = _compiler.compile(bqlStmt);
                } catch (RecognitionException e) {
                    String errMsg = _compiler.getErrorMessage(e);
                    if (errMsg == null) {
                        errMsg = "Unknown parsing error.";
                    }
                    logger.error("BQL parsing error: " + errMsg + ", BQL: " + bqlStmt);
                    writeEmptyResponse(req, resp, new SenseiError(errMsg, ErrorType.BQLParsingError));
                    return;
                }

                // Handle extra BQL filter if it exists
                String extraFilter = jsonObj.optString(BQL_EXTRA_FILTER);
                JSONObject predObj = null;
                if (extraFilter.length() > 0) {
                    String bql2 = "SELECT * WHERE " + extraFilter;
                    try {
                        predObj = _compiler.compile(bql2);
                    } catch (RecognitionException e) {
                        String errMsg = _compiler.getErrorMessage(e);
                        if (errMsg == null) {
                            errMsg = "Unknown parsing error.";
                        }
                        logger.error("BQL parsing error for additional preds: " + errMsg + ", BQL: " + bql2);
                        writeEmptyResponse(req, resp,
                                new SenseiError(
                                        "BQL parsing error for additional preds: " + errMsg + ", BQL: " + bql2,
                                        ErrorType.BQLParsingError));
                        return;
                    }

                    // Combine filters
                    JSONArray filter_list = new JSONArray();
                    JSONObject currentFilter = compiledJson.optJSONObject("filter");
                    if (currentFilter != null) {
                        filter_list.put(currentFilter);
                    }

                    JSONArray selections = predObj.optJSONArray("selections");
                    if (selections != null) {
                        for (int i = 0; i < selections.length(); ++i) {
                            JSONObject pred = selections.getJSONObject(i);
                            if (pred != null) {
                                filter_list.put(pred);
                            }
                        }
                    }
                    JSONObject additionalFilter = predObj.optJSONObject("filter");
                    if (additionalFilter != null) {
                        filter_list.put(additionalFilter);
                    }

                    if (filter_list.length() > 1) {
                        compiledJson.put("filter", new JSONObject().put("and", filter_list));
                    } else if (filter_list.length() == 1) {
                        compiledJson.put("filter", filter_list.get(0));
                    }
                }

                JSONObject metaData = compiledJson.optJSONObject("meta");
                if (metaData != null) {
                    JSONArray variables = metaData.optJSONArray("variables");
                    if (variables != null) {
                        for (int i = 0; i < variables.length(); ++i) {
                            String var = variables.getString(i);
                            if (templatesJson == null || templatesJson.opt(var) == null) {
                                writeEmptyResponse(req, resp,
                                        new SenseiError("[line:0, col:0] Variable " + var + " is not found.",
                                                ErrorType.BQLParsingError));
                                return;
                            }
                        }
                    }
                }
            } else {
                // This is NOT a BQL statement
                query = "json=" + content;
                compiledJson = jsonObj;
            }

            if (templatesJson != null) {
                compiledJson.put(JsonTemplateProcessor.TEMPLATE_MAPPING_PARAM, templatesJson);
            }
            senseiReq = SenseiRequest.fromJSON(compiledJson, _facetInfoMap);
        }
        SenseiResult res = broker.browse(senseiReq);
        numHits = res.getNumHits();
        totalDocs = res.getTotalDocs();
        sendResponse(req, resp, senseiReq, res);
    } catch (JSONException e) {
        try {
            writeEmptyResponse(req, resp, new SenseiError(e.getMessage(), ErrorType.JsonParsingError));
        } catch (Exception ex) {
            throw new ServletException(e);
        }
    } catch (Exception e) {
        try {
            logger.error(e.getMessage(), e);
            if (e.getCause() != null && e.getCause() instanceof JSONException) {
                writeEmptyResponse(req, resp, new SenseiError(e.getMessage(), ErrorType.JsonParsingError));
            } else {
                writeEmptyResponse(req, resp, new SenseiError(e.getMessage(), ErrorType.InternalError));
            }
        } catch (Exception ex) {
            throw new ServletException(e);
        }
    } finally {
        if (queryLogger.isInfoEnabled() && query != null) {
            queryLogger.info(String.format("hits(%d/%d) took %dms: %s", numHits, totalDocs,
                    System.currentTimeMillis() - time, query));
        }
    }
}

From source file:com.rackspacecloud.client.service_registry.clients.BaseClient.java

protected ClientResponse performRequest(String path, List<NameValuePair> params, HttpRequestBase method,
        boolean parseAsJson, Type responseType, boolean reAuthenticate, int retryCount) throws Exception {
    int statusCode;

    this.authClient.refreshToken(reAuthenticate);

    String url = (this.apiUrl + "/" + this.authClient.getAuthToken().getTenant().get("id") + path);

    if (params != null) {
        url += "?" + URLEncodedUtils.format(params, "UTF-8");
    }//from   w  ww . j  a v a  2 s  .  c om

    method.setURI(new URI(url));
    method.setHeader("User-Agent", Client.VERSION);
    method.setHeader("X-Auth-Token", this.authClient.getAuthToken().getId());

    HttpResponse response = this.client.execute(method);
    statusCode = response.getStatusLine().getStatusCode();

    if ((statusCode == 401) && (retryCount < MAX_401_RETRIES)) {
        retryCount++;
        logger.info("API server returned 401, re-authenticating and re-trying the request");
        return this.performRequest(path, params, method, parseAsJson, responseType, true, retryCount);
    }

    return new ClientResponse(response, parseAsJson, responseType);
}

From source file:com.greenline.guahao.biz.manager.partners.xm.impl.XmManagerImpl.java

/**
 * ?api/* www  . j a va2 s  .  c  om*/
 * 
 * @param lrd
 * @param req
 * @return
 */
private XmResponseDO callXmApi(LocalResponseDO<Object> lrd, XmRequestDO req, String logObjName) {
    XmResponseDO result = null;
    try {
        List<Header> headers = new ArrayList<Header>();
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("clientId", XmConstants.APP_ID));
        params.add(new BasicNameValuePair("token", req.getToken()));

        String nonce = XMUtil.generateNonce();
        String qs = URLEncodedUtils.format(params, "UTF-8");
        String mac = XMUtil.getMacAccessTokenSignatureString(nonce, "GET", XmConstants.HOST_XM_API,
                req.getUri(), qs, req.getMacKey(), req.getMacAlgorithm());
        Header macHeader = XMUtil.buildMacRequestHead(req.getToken(), nonce, mac);
        headers.add(macHeader);
        XMApiHttpClient client = new XMApiHttpClient(new Long(XmConstants.APP_ID).longValue(), req.getToken(),
                new XMHttpClient());
        JSONObject json = client.apiCall(req.getUri(), params, headers, "GET");
        result = jackjson.read(String.valueOf(json), XmResponseDO.class);
    } catch (Exception e) {
        String info = String.format(logObjName + "?%s", jackjson.writeString(req));
        log.error(info, e);
        lrd.setResult(LocalResponseCode.LOCAL_EXCEPTION, info, info + "," + e.getMessage());
    }
    return result;
}

From source file:de.geeksfactory.opacclient.apis.Zones22.java

@Override
public SearchRequestResult search(List<SearchQuery> queries)
        throws IOException, NotReachableException, OpacErrorException {
    start();/*  www.  j  a v a2s . c o  m*/

    List<NameValuePair> params = new ArrayList<NameValuePair>();

    params.add(new BasicNameValuePair("Style", "Portal3"));
    params.add(new BasicNameValuePair("SubStyle", ""));
    params.add(new BasicNameValuePair("Lang", "GER"));
    params.add(new BasicNameValuePair("ResponseEncoding", "utf-8"));
    params.add(new BasicNameValuePair("Method", "QueryWithLimits"));
    params.add(new BasicNameValuePair("SearchType", "AdvancedSearch"));
    params.add(new BasicNameValuePair("TargetSearchType", "AdvancedSearch"));
    params.add(new BasicNameValuePair("DB", "SearchServer"));
    params.add(new BasicNameValuePair("q.PageSize", "10"));

    int index = 1;
    for (SearchQuery query : queries) {
        index = addParameters(query, params, index);
    }

    if (index > 3) {
        throw new OpacErrorException(
                stringProvider.getFormattedString(StringProvider.LIMITED_NUM_OF_CRITERIA, 3));
    } else if (index == 1) {
        throw new OpacErrorException(stringProvider.getString(StringProvider.NO_CRITERIA_INPUT));
    }

    String html = httpGet(opac_url + "/" + searchobj + "?" + URLEncodedUtils.format(params, "UTF-8"),
            getDefaultEncoding());

    page = 1;

    return parse_search(html, page);
}

From source file:org.jenkinsci.plugins.GitLabSecurityRealm.java

public HttpResponse doCommenceLogin(StaplerRequest request, @Header("Referer") final String referer)
        throws IOException {
    request.getSession().setAttribute(REFERER_ATTRIBUTE, referer);

    // 2. Requesting authorization :
    // http://doc.gitlab.com/ce/api/oauth2.html

    List<NameValuePair> parameters = new ArrayList<NameValuePair>();
    parameters.add(new BasicNameValuePair("redirect_uri", buildRedirectUrl(request)));
    parameters.add(new BasicNameValuePair("response_type", "code"));
    parameters.add(new BasicNameValuePair("client_id", clientID));

    return new HttpRedirect(
            gitlabWebUri + "/oauth/authorize?" + URLEncodedUtils.format(parameters, StandardCharsets.UTF_8));
}

From source file:com.github.feribg.audiogetter.helpers.Utils.java

/**
 * Prepare Vimeo search URL/*from www .j  a va  2  s.c  om*/
 * @param query
 * @param page
 * @return
 * @throws URISyntaxException
 */
public static URI getVimeoSearchURI(String query, Integer page) throws URISyntaxException {
    List<NameValuePair> qparams = new ArrayList<NameValuePair>();
    qparams.add(new BasicNameValuePair("query", query));
    qparams.add(new BasicNameValuePair("page", String.valueOf(page)));
    qparams.add(new BasicNameValuePair("per_page", String.valueOf(Constants.Vimeo.PER_PAGE)));
    return URIUtils.createURI(Constants.Vimeo.API_SCHEME, Constants.Vimeo.API_HOST, -1,
            Constants.Vimeo.API_SEARCH, URLEncodedUtils.format(qparams, "UTF-8"), null);
}

From source file:io.gs2.notification.Gs2NotificationClient.java

/**
 * ?????<br>/*w  ww. j  a  va2  s . c  om*/
 * <br>
 *
 * @param request 
        
 * @return ?
        
 */

public DescribeSubscribeResult describeSubscribe(DescribeSubscribeRequest request) {

    String url = Gs2Constant.ENDPOINT_HOST + "/notification/"
            + (request.getNotificationName() == null || request.getNotificationName().equals("") ? "null"
                    : request.getNotificationName())
            + "/subscribe";

    List<NameValuePair> queryString = new ArrayList<>();
    if (request.getPageToken() != null)
        queryString.add(new BasicNameValuePair("pageToken", String.valueOf(request.getPageToken())));
    if (request.getLimit() != null)
        queryString.add(new BasicNameValuePair("limit", String.valueOf(request.getLimit())));

    if (queryString.size() > 0) {
        url += "?" + URLEncodedUtils.format(queryString, "UTF-8");
    }
    HttpGet get = createHttpGet(url, credential, ENDPOINT, DescribeSubscribeRequest.Constant.MODULE,
            DescribeSubscribeRequest.Constant.FUNCTION);
    if (request.getRequestId() != null) {
        get.setHeader("X-GS2-REQUEST-ID", request.getRequestId());
    }

    return doRequest(get, DescribeSubscribeResult.class);

}

From source file:iristk.speech.nuancecloud.JSpeexNuanceCloudRecognizerListener.java

private void initRequest() {
    try {//from ww  w .  j a va 2 s.  co m
        byteQueue.reset();
        encodedQueue.reset();
        JSpeexEnc encoder = new JSpeexEnc(16000);
        encoder.startEncoding(byteQueue, encodedQueue);

        List<NameValuePair> qparams = new ArrayList<NameValuePair>();
        qparams.add(new BasicNameValuePair("appId", APP_ID));
        qparams.add(new BasicNameValuePair("appKey", APP_KEY));
        qparams.add(new BasicNameValuePair("id", DEVICE_ID));
        URI uri = URIUtils.createURI("https", HOSTNAME, 443, SERVLET, URLEncodedUtils.format(qparams, "UTF-8"),
                null);
        final HttpPost httppost = new HttpPost(uri);
        httppost.addHeader("Content-Type", CODEC);
        httppost.addHeader("Content-Language", LANGUAGE);
        httppost.addHeader("Accept-Language", LANGUAGE);
        httppost.addHeader("Accept", RESULTS_FORMAT);
        httppost.addHeader("Accept-Topic", LM);
        if (nuanceAudioSource != null) {
            httppost.addHeader("X-Dictation-AudioSource", nuanceAudioSource.name());
        }
        if (cookie != null)
            httppost.addHeader("Cookie", cookie);

        InputStreamEntity reqEntity = new InputStreamEntity(encodedQueue.getInputStream(), -1);
        reqEntity.setContentType(CODEC);

        httppost.setEntity(reqEntity);

        postThread = new PostThread(httppost);

    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
}

From source file:cn.com.dfc.pl.afinal.http.AjaxParams.java

public String getParamString() {
    return URLEncodedUtils.format(getParamsList(), ENCODING);
}

From source file:org.maikelwever.droidpile.backend.ApiConnecter.java

public String postData(ArrayList<NameValuePair> payload, String... data) throws IOException {
    if (data.length < 1) {
        throw new IllegalArgumentException("More than 1 argument is required.");
    }//from   ww w  .  j  a  va2  s .  c  om

    String url = this.baseUrl;
    String suffix = "";
    for (String arg : data) {
        suffix += "/" + arg;
    }

    suffix += "/";

    Log.d("droidpile", "URL we will call: " + url + suffix);

    url += suffix;
    URL uri = new URL(url);
    InputStreamReader is;
    HttpURLConnection con;

    if (url.startsWith("https")) {
        con = (HttpsURLConnection) uri.openConnection();
    } else {
        con = (HttpURLConnection) uri.openConnection();
    }

    String urlParameters = URLEncodedUtils.format(payload, ENCODING);

    con.setDoInput(true);
    con.setDoOutput(true);
    con.setInstanceFollowRedirects(false);
    con.setRequestMethod("POST");
    con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    con.setRequestProperty("charset", ENCODING);
    con.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes(ENCODING).length));
    con.setUseCaches(false);

    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();
    is = new InputStreamReader(con.getInputStream(), ENCODING);

    StringBuilder sb = new StringBuilder();
    BufferedReader br = new BufferedReader(is);
    String read = br.readLine();

    while (read != null) {
        sb.append(read);
        read = br.readLine();
    }
    String stringData = sb.toString();
    con.disconnect();
    return stringData;
}