手机
当前位置:查字典教程网 >编程开发 >Java >java实现http请求工具类示例
java实现http请求工具类示例
摘要:通过httprest请求返回数据复制代码代码如下:importorg.apache.commons.logging.Log;importor...

通过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, List<NameValuePair> params) {

HttpClient httpclient = getHttpClient();

HttpPost post = new HttpPost(url);

ResponseHandler<String> responseHandler = 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);

ResponseHandler<String> responseHandler = 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);

ResponseHandler<String> responseHandler = 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单向链表的实现实例

如何用Java实现啥夫曼编码

Java 随机取字符串的工具类

java多线程入门知识及示例程序

Java 自定义错误类示例代码

java反射机制示例详解

Java实现验证码具体代码

java操作mongodb实现CURD功能实例

java使用数组和链表实现队列示例

Java调用DOS实现定时关机的实例

精品推荐
分类导航