`

HttpClient请求调用封装

 
阅读更多

1. maven依赖包下载

<!-- httpclient -->
	 <dependency>
	   <groupId>org.apache.httpcomponents</groupId>
	   <artifactId>httpclient</artifactId>
	   <version>4.2.1</version>
     </dependency>

 

2. HttpClientUtil.java

package com.snail.common.util;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

/**
 * HttpClient调用工具类
 * 
 * @author penghuaiyi
 * @date 2014-04-04
 */
public class HttpClientUtil {

	/**
	 * 发送GET请求
	 * @param uri
	 * @return
	 */
	public static String sendGet(String uri) {
		String responseBody = null;
		HttpClient httpClient = new DefaultHttpClient();
		try {
			HttpGet httpGet = new HttpGet(uri);
			System.out.println("executing request " + httpGet.getURI());
			// Create a response handler
			ResponseHandler<String> responseHandler = new BasicResponseHandler();
			responseBody = httpClient.execute(httpGet, responseHandler);
			System.out.println("----------------------------------------");
			System.out.println(responseBody);
			System.out.println("----------------------------------------");
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			httpClient.getConnectionManager().shutdown();
		}
		return responseBody;
	}
	
	/**
	 * 发送POST请求
	 * @param uri
	 * @param paramMap 请求参数
	 * @return
	 */
	public static String sendPost(String uri, Map<String, String> paramMap) {
		return sendPost(uri, paramMap, null);
	}

	/**
	 * 发送POST请求
	 * @param uri
	 * @param paramMap 请求参数
	 * @param charset 参数编码
	 * @return
	 */
	public static String sendPost(String uri, Map<String, String> paramMap, String charset) {
		String responseBody = null;
		HttpClient httpClient = new DefaultHttpClient();
		try {
			HttpPost httpPost = new HttpPost(uri);
			System.out.println("executing request " + httpPost.getURI());
			if (paramMap != null) {
				List<NameValuePair> nvps = new ArrayList<NameValuePair>(
						paramMap.size());
				for (Map.Entry<String, String> entry : paramMap.entrySet()) {
					NameValuePair nvp = new BasicNameValuePair(entry.getKey(),
							entry.getValue());
					nvps.add(nvp);
				}
				if(charset!=null){
					httpPost.setEntity(new UrlEncodedFormEntity(nvps,charset));
				}else{
					httpPost.setEntity(new UrlEncodedFormEntity(nvps));
				}
			}
			// Create a response handler
			ResponseHandler<String> responseHandler = new BasicResponseHandler();
			responseBody = httpClient.execute(httpPost, responseHandler);
			System.out.println("----------------------------------------");
			System.out.println(responseBody);
			System.out.println("----------------------------------------");
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			httpClient.getConnectionManager().shutdown();
		}
		return responseBody;

	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics