java调用HttpPost,HttpGet调用示例

来源:互联网 发布:linux中文语言包 编辑:程序博客网 时间:2024/05/16 14:37

用途:

本文演示如何使用java调用 HttpPost,HttpGet类,并进行简单封装。
PS:添加了上下文支持,用于存储cookie信息,保证http访问连贯性。

代码

HttpUtil.java

import 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);    }