Java(15):httpclient4.5.3(CloseableHttpClient) http的Get和Post请求的封装(1)

这篇博客介绍了如何使用Java的HttpClient 4.5.3库封装HTTP的GET和POST请求,包括无参数、带参数、带token的情况。文章详细阐述了请求参数的封装、资源的释放流程,并提供了相应的代码示例。
摘要由CSDN通过智能技术生成

1.将不同类型的请求如 GET和POST封装起来

GET请求(不带参数的GET/带参数的GET/不带token的GET/带token的GET),

POST请求(不带参数的POST/带参数的POST/带token的POST)

2.请求参数进行封装

3.释放资源进行封装

4.请求头进行封装(和请求参数类似,这里因为请求头少就先不封装了)

5.返回的响应结果进行封装(还未进行)

具体实现:

1.将不同类型的请求如 get,不带参数的get,带参数的get,不带参数的post,带参数的post封装起来

1.GET请求

   /**

     * 发送HttpGet请求,不带请求头和请求参数

     * @param url

     * @return

     */

    public static String doGet(String url) throws Exception {

        return doGet(url,null,null);

    }

    /**

     * 发送HttpGet请求,带请求头和请求参数

     * @param url

     * @param token

     * @return

     */

    public static String doGet(String url,Map<String,String> params,String token) throws Exception{

        CloseableHttpClient httpClient = null;

        CloseableHttpResponse httpResponse = null;

        String result = null;

        try {

            //1.创建httpClient对象

            httpClient = HttpClients.createDefault();

            // 创建访问的地址

            URIBuilder uriBuilder = new URIBuilder(url);

            if (params != null) {

                Set<Entry<String, String>> entrySet = params.entrySet();

                for (Entry<String, String> entry : entrySet) {

                    uriBuilder.setParameter(entry.getKey(), entry.getValue());
                }
            }



            //2.创建httpGet对象

            HttpGet httpget = new HttpGet(uriBuilder.build());

            //2.1设置请求头

            httpget.setHeader("Authorization",token);

            //3.使用httpClient发起请求并响应获取repsonse

            httpResponse = httpClient.execute(httpget);

            // 打印响应状态

            System.out.println(httpResponse.getStatusLine());

            //4.解析响应,获取数据

            HttpEntity entity = httpResponse.getEntity();

            if (entity != null) {

                result = EntityUtils.toString(entity);

                // 打印响应内容长度

                System.out.println("Response content length: " + entity.getContentLength());

                // 打印响应内容

                System.out.println("Response content: " + result);
            }

        } catch (ParseException | IOException e) {
            e.printStackTrace();
        }

        finally {
            //5.释放资源
            release(httpResponse,httpClient);
        }
        return result;
    }

2.POST请求

 /**

     * 发送POST请求,不带Token,不带请求参数

     * @param url

     * @return

     */



    public static String doPost(String url) throws Exception {
        return doPost(url,null,null);
    }

    /**

     * 发送POST请求,不带Token,带请求参数

     * @param url

     * @param jsonstr

     * @return

     */



    public static String doPost(String url, String jsonstr) throws Exception {
        return doPost(url,jsonstr,null);
    }



    /**

     * 发送POST请求,带Token,带请求参数

     * @param url

     * @param jsonstr

     * @param token

     * @return

     */



    //public static String doPost(String url, JSONObject json,String token) {
    public static String doPost(String url, String jsonstr,String token) throws Exception {
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse httpResponse=null;
        String result="";
        try {
            //1.创建httpClient对象
            httpClient = HttpClients.createDefault();
            //2.创建httpPost对象
            HttpPost httpPost = new HttpPost(url);
            //2.1对象设置请求头
            httpPost.setHeader("C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值