java调用HttpPost,HttpGet调用示例
2017-09-19 17:47
381 查看
用途:
本文演示如何使用java调用 HttpPost,HttpGet类,并进行简单封装。PS:添加了上下文支持,用于存储cookie信息,保证http访问连贯性。
代码
HttpUtil.javaimport java.io.IOException; import net.sf.json.JSONObject; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; 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.client.protocol.HttpClientContext; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HttpUtil { private static Logger logger = LoggerFactory.getLogger(HttpUtil.class); private static HttpClientContext context = null; private static HttpClientContext getContext() { if (context == null) context = HttpClientContext.create(); return context; } public static String post(String url, JSONObject jo) { logger.info("req:" + url); logger.info("param:" + jo); StringEntity reqEntity = new StringEntity(jo.toString(), Consts.UTF_8); reqEntity.setContentType("application/json"); HttpPost httppost = new HttpPost(url); httppost.setEntity(reqEntity); CloseableHttpClient client = HttpClients.createDefault(); String result = null; try { CloseableHttpResponse res = client.execute(httppost, getContext()); if (res.getStatusLine().getStatusCode() == 200) { HttpEntity resEntity = res.getEntity(); if (resEntity != null) { result = EntityUtils.toString(resEntity, Consts.UTF_8); logger.info("res:" + result); } } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } public static String get(String url) { CloseableHttpClient client = HttpClients.createDefault(); HttpGet httpget = new HttpGet(url); CloseableHttpResponse res = null; String result = null; try { res = client.execute(httpget, getContext()); if (res.getStatusLine().getStatusCode() == 200) { HttpEntity entity = res.getEntity(); if (entity != null) { result = EntityUtils.toString(entity, Consts.UTF_8); logger.info(result); } } } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } }
HttpUtilTest.java
@Test public void testHttpGet() { String url = "http://www.baidu.com"; HttpUtil.get(url); } @Test public void testHttpPost() { JSONObject jo = new JSONObject(); jo.put("param1", "value1"); jo.put("param2", "value2"); HttpUtil.post(getUrl(), jo); }
相关文章推荐
- JAVA 调用HTTP接口POST或GET实现方式
- java HttpClient get post请求 调用接口
- php中运用http调用的GET和POST方法示例
- java HttpUrlConnection get和post 模拟请求 调用接口
- 封装好的java调用Http------post/get方法
- JAVA 调用HTTP接口POST或GET实现方式
- JAVA 调用HTTP接口POST或GET实现方式
- php中运用http调用的GET和POST方法示例
- java http调用方式get post 包含带header
- Get、Post(HTTP中最常用的请求方式 使用ASIHTTPRequest)----例如:登录、上传图片(调用手机相册 UIImage 转为data)
- Java 入门 之 HTTP 的 GET & POST 方法
- vue中axios处理http发送请求的示例(Post和get)
- java apache commons HttpClient发送get和post请求的学习整理
- java发送post和get请求(1)---HttpURLConnection方式
- java实现http的get和post请求
- [厉害了,我的JAVA基础](八)HTTP请求的GET与POST方式的区别
- post和get请求调用Http接口并拿到数据
- JAVA发送http get/post请求,调用http接口、方法
- java apache commons HttpClient发送get和post请求的学习整理
- java封装httpClient工具(支持http和https,包含get和post请求)