java语言

java实现http请求工具类示例

时间:2024-09-09 02:49:19 java语言 我要投稿
  • 相关推荐

关于java实现http请求工具类示例

  通过http rest请求返回数据

  复制代码 代码如下:

  import org.apache.commons.logging.Log;

  import org.apache.commons.logging.LogFactory;

  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.impl.conn.tsccm.ThreadSafeClientConnManager;

  import java.io.IOException;

  import java.text.MessageFormat;

  import java.util.List;

  import java.util.concurrent.TimeUnit;

  /**

  * 分装一个http请求的工具类

  *

  * @author 顾炜【guwei】 on 14-4-22.下午3:17

  */

  public class HttpClientUtils {

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

  /**

  * 初始化HttpClient

  */

  private static HttpClient httpClient = null;

  /**

  * 生产HttpClient实例

  * 公开,静态的工厂方法,需要使用时才去创建该单体

  *

  * @return

  */

  public static HttpClient getHttpClient() {

  if (httpClient == null) {

  httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager());

  }

  return httpClient;

  }

  /**

  * POST方式调用

  *

  * @param url

  * @param params 参数为NameValuePair键值对对象

  * @return 响应字符串

  * @throws java.io.UnsupportedEncodingException

  */

  public static String executeByPOST(String url, Listparams) {

  HttpClient httpclient = getHttpClient();

  HttpPost post = new HttpPost(url);

  ResponseHandlerresponseHandler = new BasicResponseHandler();

  String responseJson = null;

  try {

  if (params != null) {

  post.setEntity(new UrlEncodedFormEntity(params));

  }

  responseJson = httpclient.execute(post, responseHandler);

  log.info("HttpClient POST请求结果:" + responseJson);

  } catch (ClientProtocolException e) {

  e.printStackTrace();

  log.info("HttpClient POST请求异常:" + e.getMessage());

  } catch (IOException e) {

  e.printStackTrace();

  } finally {

  httpclient.getConnectionManager().closeExpiredConnections();

  httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);

  }

  return responseJson;

  }

  /**

  * Get方式请求

  *

  * @param url 带参数占位符的URL,例:http://****/User/user/center.aspx?_action=GetSimpleUserInfo&codes={0}&email={1}

  * @param params 参数值数组,需要与url中占位符顺序对应

  * @return 响应字符串

  * @throws java.io.UnsupportedEncodingException

  */

  public static String executeByGET(String url, Object[] params) {

  HttpClient httpclient = getHttpClient();

  String messages = MessageFormat.format(url, params);

  HttpGet get = new HttpGet(messages);

  ResponseHandlerresponseHandler = new BasicResponseHandler();

  String responseJson = null;

  try {

  responseJson = httpclient.execute(get, responseHandler);

  log.info("HttpClient GET请求结果:" + responseJson);

  } catch (ClientProtocolException e) {

  e.printStackTrace();

  log.info("HttpClient GET请求异常:" + e.getMessage());

  } catch (IOException e) {

  e.printStackTrace();

  log.info("HttpClient GET请求异常:" + e.getMessage());

  } finally {

  httpclient.getConnectionManager().closeExpiredConnections();

  httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);

  }

  return responseJson;

  }

  /**

  * @param url

  * @return

  */

  public static String executeByGET(String url) {

  HttpClient httpclient = getHttpClient();

  HttpGet get = new HttpGet(url);

  ResponseHandlerresponseHandler = new BasicResponseHandler();

  String responseJson = null;

  try {

  responseJson = httpclient.execute(get, responseHandler);

  log.info("HttpClient GET请求结果:" + responseJson);

  } catch (ClientProtocolException e) {

  e.printStackTrace();

  log.info("HttpClient GET请求异常:" + e.getMessage());

  } catch (IOException e) {

  e.printStackTrace();

  log.info("HttpClient GET请求异常:" + e.getMessage());

  } finally {

  httpclient.getConnectionManager().closeExpiredConnections();

  httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);

  }

  return responseJson;

  }

  }

【java实现http请求工具类示例】相关文章:

java构造函数实现代码示例04-03

java system类使用方法示例04-03

Java编程学习示例04-03

关于循环的java代码示例04-03

关于Java动态实现的方法04-02

Java程序设计示例教程04-02

实现java屏幕抓屏的方法03-27

Java类的基本构成11-18

什么是java集合类03-27