com.joken.notice.message.util.HttpRequestHandler.java Source code

Java tutorial

Introduction

Here is the source code for com.joken.notice.message.util.HttpRequestHandler.java

Source

/*
 * @(#)HttpRequestHandler.java   V0.0.1 2015810, ?3:00:43
 *
 * Copyright 2015 www.ifood517.com. All rights reserved.
 * www.ifood517.com PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.joken.notice.message.util;

import java.nio.charset.Charset;

import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;

/**
 * HTTP
 * <p>
 * @version V0.0.1, Aug 10, 2015
 * @author  Hanzibin
 * @since   V0.0.1
 */
public class HttpRequestHandler {
    private final static Logger log = Logger.getLogger(HttpRequestHandler.class);

    private String url;
    private String postData;

    public static RequestConfig requestConfig = null;

    /**
     * ??post
     * @Auther Hanzibin
     * @date 3:18:48 PM,Mar 11, 2016
     * @return String 
     */
    public String sendPostRequest() {
        CloseableHttpResponse httpResponse = null;
        PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
        connManager.setMaxTotal(300);
        connManager.setDefaultMaxPerRoute(20);
        if (requestConfig == null) {
            requestConfig = RequestConfig.custom().setConnectionRequestTimeout(10000)
                    .setStaleConnectionCheckEnabled(true).setConnectTimeout(10000).setSocketTimeout(10000).build();
        }
        CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager)
                .setDefaultRequestConfig(requestConfig).build();

        HttpPost hp = new HttpPost(url);
        try {
            StringEntity entity = new StringEntity(postData, Charset.forName("UTF-8"));//?    
            entity.setContentEncoding("UTF-8");
            entity.setContentType("application/json");
            hp.setEntity(entity);
            httpResponse = httpClient.execute(hp);
            return EntityUtils.toString(httpResponse.getEntity());
        } catch (Throwable t) {
            t.printStackTrace();
            log.info("??Http" + postData.toString() + "");
        } finally {
            try {
                hp.releaseConnection();
            } catch (Exception e) {
            }
        }
        return null;
    }

    /**
     * ??get
     * @Auther Hanzibin
     * @date 3:18:48 PM,Mar 11, 2016
     * @return String 
     */
    public String sendGetRequest() {
        CloseableHttpResponse httpResponse = null;
        PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
        connManager.setMaxTotal(300);
        connManager.setDefaultMaxPerRoute(20);

        if (requestConfig == null) {
            requestConfig = RequestConfig.custom().setConnectionRequestTimeout(10000)
                    .setStaleConnectionCheckEnabled(true).setConnectTimeout(10000).setSocketTimeout(10000).build();
        }
        CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connManager)
                .setDefaultRequestConfig(requestConfig).build();
        HttpGet hp = new HttpGet(url);
        try {
            httpResponse = httpClient.execute(hp);
            if (httpResponse.getStatusLine().getStatusCode() == 200)
                return EntityUtils.toString(httpResponse.getEntity());
        } catch (Throwable t) {
            t.printStackTrace();
        } finally {
            try {
                hp.releaseConnection();
            } catch (Exception e) {
            }
        }
        return null;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getPostData() {
        return postData;
    }

    public void setPostData(String postData) {
        this.postData = postData;
    }

}