apm.common.utils.HttpTookit.java Source code

Java tutorial

Introduction

Here is the source code for apm.common.utils.HttpTookit.java

Source

/**
 * Copyright © 2012-2013 Zaric All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package apm.common.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.httpclient.util.URIUtil;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * HTTP
 * <p>@author Zaric
 * <p>@date 2013-7-4 ?10:46:38
 */
public final class HttpTookit {

    private static Log log = LogFactory.getLog(HttpTookit.class);

    /**
     * HTTP GET?HTML
     * 
     * @param url
     *            URL?
     * @param queryString
     *            ?,?null
     * @param charset
     *            
     * @param pretty
     *            ?
     * @return ?HTML
     */
    public static String doGet(String url, String queryString, String charset, boolean pretty) {
        StringBuffer response = new StringBuffer();
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod(url);
        try {
            if (StringUtils.isNotBlank(queryString))
                // get??http?????%?
                method.setQueryString(URIUtil.encodeQuery(queryString));
            client.executeMethod(method);
            if (method.getStatusCode() == HttpStatus.SC_OK) {
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(method.getResponseBodyAsStream(), charset));
                String line;
                while ((line = reader.readLine()) != null) {
                    if (pretty) {
                        response.append(line).append(System.getProperty("line.separator"));
                    } else {
                        response.append(line);
                    }
                }
                reader.close();
            }
        } catch (URIException e) {
            log.error("HTTP Get?" + queryString + "???", e);
        } catch (IOException e) {
            log.error("HTTP Get" + url + "??", e);
        } finally {
            method.releaseConnection();
        }
        return response.toString();
    }

    /**
     * HTTP POST?HTML
     * 
     * @param url
     *            URL?
     * @param params
     *            ?,?null
     * @param charset
     *            
     * @param pretty
     *            ?
     * @return ?HTML
     */
    public static String doPost(String url, Map<String, String> params, String charset, boolean pretty) {
        StringBuffer response = new StringBuffer();
        HttpClient client = new HttpClient();
        HttpMethod method = new PostMethod(url);
        // Http Post?
        if (params != null) {
            HttpMethodParams p = new HttpMethodParams();
            for (Map.Entry<String, String> entry : params.entrySet()) {
                p.setParameter(entry.getKey(), entry.getValue());
            }
            method.setParams(p);
        }
        try {
            client.executeMethod(method);
            if (method.getStatusCode() == HttpStatus.SC_OK) {
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(method.getResponseBodyAsStream(), charset));
                String line;
                while ((line = reader.readLine()) != null) {
                    if (pretty) {
                        response.append(line).append(System.getProperty("line.separator"));
                    } else {
                        response.append(line);
                    }
                }
                reader.close();
            }
        } catch (IOException e) {
            log.error("HTTP Post" + url + "??", e);
        } finally {
            method.releaseConnection();
        }
        return response.toString();
    }
}